この単純なコードは本当に苦労するので、誰かが何かをして、何が間違っている可能性があるかを説明してくれませんか?ヘッダーファイルからインクルードされたクラスを使用する単純なcppファイルがあります。
lib.h
namespace tnamespace {
class base{
virtual ~base() {};
};
class test/*: public base*/ {
public:
test();
test();
};
}
lib.cxx
#include "lib.h"
namespace tnamespace{
test::test() {};
test::~test() {}
}
start.cpp
#include <iostream>
#include <lib.h>
int main() {
tnamespace::test d;
return 0;
}
私はgccバージョン4.1.2200080704を使用し、プロジェクトをコンパイルします
g++ start.cpp -I./ext_lib -Wall
次のリンカーエラーが発生しました
/tmp/ccK2v6GD.o:関数 `main'内:
start.cpp:(。text+0x7a): `tnamespace :: test :: test()'への未定義の参照
start.cpp:(。text+0x88): `tnamespace :: test ::〜test()'への未定義の参照
collect2:ldが1つの終了ステータスを返しました
私はなんとか解決策を見つけることができました。libをコンパイルするのを忘れました。適切なg++コマンド
g ++ start.cpp ext_lib / lib.cxx -I./ext_lib -Wall