私はこのような設定をしています
ファイル.h:
#pragma once
namespace a {
int home(double a, double b, ...
class b {
int la();
};
}
ファイル.cpp
#include "file.h"
using namespace a;
int home(double a, double b, ...) {
//function stuff
}
int b::la() {
home(1, 2, ...)
}
bはインスタンス化され、次のように main で使用されます。
#include "file.h"
b instant;
instant.la()
しかし、関数を使用しているすべての場所でこのリンカー エラーが発生していますhome
。
undefined reference to `a::home(double, double, ...)'
In function a::b::la()
すべての CMakelist が正しく設定され、すべてが含まれていると確信しています。
しかし、file.cppを名前空間に変更すると、次のようになります。
namespace a {
all of the same stuff
}
それはうまく動作しますか?
なぜこれが起こっているのですか?