0

だから、私はlibpthread.aライブラリを自分のライブラリに取り込もうとしています。しかし、それを使用するコードをコンパイルしようとすると、リンカーの問題が発生します。次のようにしてコンパイルします。

g++ foo.cpp foo.o
ar x /usr/lib/libpthread.a
ar rcs libfoo.a *.o

g++ bar.cpp -o bar -L./ -lfoo

しかし、私はたくさんのundefined reference to 'pthread_stuff'

私は自分が間違っていることを本当に理解していません。

4

2 に答える 2

0

他のC関数を使用する関数を宣言する必要がありますextern "C"。そうしないと、C++の名前マングリングによって名前が「歪む」ことになります。詳細: http: //publib.boulder.ibm.com/infocenter/macxhelp/v6v81/index.jsp?topic =%2Fcom.ibm.vacpp6m.doc%2Flanguage%2Fref%2Fclrc01name_mangling.htm

于 2012-03-23T14:22:13.653 に答える
0

そこで、コンパイル引数を次のように変更して修正しました。

g++ -static bar.cpp -o bar -L./ -lfoo

于 2012-03-23T14:55:18.440 に答える