如何将外部库静态链接到我的可执行文件中?

时间:2011-04-06 15:33:17

标签: c++ linker static-linking

我不希望最终用户必须安装库,因此,在我的exec中打包库是首选。

这是make文件中的相关行:

hPif : src/main.o src/fann_utils.o src/hashes.o src/Config.o
    g++ -o  hPif src/main.o src/fann_utils.o src/hashes.o src/Config.o -static -lfann -lboost -L/usr/local/lib 

我正在尝试链接fann和boost,我在某处(http://www.adp-gmbh.ch/cpp/gcc/create_lib.html)阅读了使用-static标志允许的内容。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

-static标志是正确的,但您需要确保您的库是没有依赖项的静态库。如果它们被构建为共享(或具有共享依赖项),则gcc将不会静态链接它们(和/或您仍将具有库依赖项)。

您可能需要重建Boost库才能实现此目的。