g ++结合库

时间:2012-03-23 14:18:08

标签: g++ ld ar

所以,我正在尝试将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'

我真的不明白我做错了什么。

2 个答案:

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