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 回答