所以,我正在尝试将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'
我真的不明白我做错了什么。
答案 0 :(得分: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
答案 1 :(得分:0)
所以我通过将编译参数更改为:
来修复它 g++ -static bar.cpp -o bar -L./ -lfoo