2010-11-19 147 views

答えて

2

どのオブジェクトファイルまたはライブラリterminateが存在するかを調べて、コンパイル/リンクコマンドに含める必要があります。

それはオブジェクトやソースファイルでなら、単に通常通りごgcc(ない場合は、この方法は、おそらく同様であろう、あなたはgccを使用して、実際にしていると仮定した場合)コマンドにそれを与えます。ライブラリ内にある場合は、-L(ライブラリパス)と-l(ライブラリ名)オプションを調べる必要があります。

-2

void terminate(void) { raise(9); }

8

terminate C++標準ライブラリで定義されているので、あなたがいることをリンクしていることを確認してくださいされています。あなたがコンパイルにはgccを使用していると仮定すると、あなたがソースコードをコンパイルし、実行可能g++を使用する必要があり、 ないgcc実行ファイル:g++として実行する場合

g++ source.cc -o output 

、リンカは自動的にあなたのため(のlibstdC++)C++標準ライブラリにリンクします。あなたが代わりにプレーンなgccとしてはgccを実行するか、直接リンカldを起動する場合は、例えば、ライブラリにリンクする-lstdc++を自分で追加する必要があります。:

gcc source.cc -o output -lstdc++ # Compile directly from source 
ld source1.o source2.o -o output -lstdc++ # Link together object files 
関連する問題