所以,我正在尝试将 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'
我真的不明白我做错了什么。
您必须声明使用其他 C 函数的函数,extern "C"
否则 C++ 名称修改会“扭曲”您的名称。更多信息: http: //publib.boulder.ibm.com/infocenter/macxhelp/v6v81/index.jsp ?topic=%2Fcom.ibm.vacpp6m.doc%2Flanguage%2Fref%2Fclrc01name_mangling.htm
所以我通过将编译参数更改为:
g++ -static bar.cpp -o bar -L./ -lfoo