c++用库编译

C++ compile with libraries

本文关键字:编译 c++      更新时间:2023-10-16

我在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。

对不起,如果我说的没有知识,如果有人可以帮助我,请。

你需要链接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++。在某些系统上,这可能是clang(在debian apt install clang上安装clang)。