因此,我正在尝试将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