C ++用库编译

时间:2014-05-27 11:00:52

标签: c++ linux gcc

我正在使用Linux中的c ++应用程序,基本上我想要做的就是这个,我有两个.cpp文件,其中一个是main.cpp,它使用线程。我的问题是我试图像这样制作一个可执行文件:  g++ -c main.cpp -> I get main.o g++ -c second.cpp -> I get second.o g++ -o executable main.o second.o - >我得到:2ficheros.cpp :(。text + 0xa4):未定义引用`pthread_create'

所以我猜我的错误是因为我必须以相同的方式关联pthread库,但我不知道如何做到这一点。我在互联网上看,我发现我必须做这样的事情:g++ -o executable main.o second.o pthread.o但我不知道它是否正确而且我看不到pthread.o只是pthread.h。

如果我在没有知情的情况下说话,如果有人可以帮助我,我很抱歉。

1 个答案:

答案 0 :(得分:0)

您需要链接pthreads支持:

c++ main.o second.o -o executable -pthread

是的,没有-l。对于其他库(例如数学库),请使用:

c++ main.o second.o -o executable -pthread -lm

如果您在其他目录中有另一个第三方库:

c++ main.o second.o -o executable -pthread -L/opt/coolmolib -lcoolmolib

注意我不直接使用“g ++”,而是使用符号链接c++。在某些系统上,这可能是铿锵的(在debian apt install clang上安装clang。)