我正在使用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。
如果我在没有知情的情况下说话,如果有人可以帮助我,我很抱歉。
答案 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。)