lpthread的GCC静态链接错误

时间:2013-07-29 15:38:40

标签: gcc

下面我的gcc命令会输出很多错误,我想将所有库静态链接到我的应用程序中。

/usr/bin/c++ -g /home/dean/work/jiangshu-sports-lottery/builder/o/displays.cpp.o ... -o bin/sports_lottery -static-libgcc -static-libstdc++ -static -lpthread.a -lcppcms.a -lmongoclient.a -lbooster.a -lloki.a -lcryptopp.a -lboost_system.a -lboost_thread.a -lboost_filesystem.a

我看到一个关于pthread的错误,即:

  

/ usr / bin / ld:错误:找不到-lpthread.a

但是当我动态链接它时,没有错误。 libpthread在我的Ubuntu上的位置如下:

find / -name 'libpthread.*'
/usr/lib/x86_64-linux-gnu/libpthread.a
/usr/lib/x86_64-linux-gnu/libpthread.so
/lib/i386-linux-gnu/libpthread.so.0
/lib/x86_64-linux-gnu/libpthread.so.0

有任何帮助吗?我正在为此寻找一些GCC文件......

1 个答案:

答案 0 :(得分:1)

使用

-lpthread

包含静态库,它们位于标准搜索路径中。如果你真的想要使用库的绝对路径(使用pthreads不应该这样),你可以使用-L开关并为它提供库的绝对路径。

这里有一些参考文档:

gcc Online documentation