Как работает пространство имен в h-файлах?

Осваиваю использование h-файлов и не могу понять, как использовать пространство имен для заголовков. Есть 3 файла:

main.cpp:

#include <iostream>
#include "add.h"

using namespace std;
using namespace fr;

int main(){
    cout<<add(1,2);
}

add.cpp:

int add(int a, int b){return a+b;};

add.h:

namespace fr{
    int add(int a,int b);
}

Я понимаю, что скорее всего ошибка в add.cpp, но не понимаю как ее исправить Ошибка такая:

 undefined reference to `fr::add(int, int)'

make-файл:

all:
    g++ -o main main.cpp add.cpp

Как можно использовать пространство имен?

Компилятор - g++ mingw x32 7.3.0 ОС - Windows 10


Ответы (1 шт):

Автор решения: Igen

Нужно в add.cpp поместить определение функции в пространство имен:

namespace fr{ int add(int a, int b){return a+b;} }
→ Ссылка