-1

我下面的 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

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

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 文件...

4

1 回答 1

2

利用

-lpthread

包括静态库,它们位于标准搜索路径中。如果您真的想使用库的绝对路径(使用 pthreads 不应该是这种情况),您可以使用-L开关并为其提供库的绝对路径。

这里有一些参考文档:

gcc 在线文档

于 2013-07-29T15:42:17.790 回答