如何将外部库静态链接到我的可执行文件中
How do I statically link external libraries into my executable?
我不想让最终用途必须安装库,所以,最好将库打包在我的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 标志允许这样做。
我做错了什么?
-static 标志是正确的,但您需要确保您的库是没有依赖项的静态库。 如果它们是作为共享构建的(或具有共享依赖项),gcc 将不会静态链接它们(和/或您仍将拥有库依赖项)。
您可能需要重建 Boost 库才能实现此目的。
相关文章:
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 如何更改使用 CPack 安装的可执行文件的名称?
- 无法在 Linux 上运行C++ ZMQ 项目的可执行文件
- 相同的源代码,不同的可执行文件大小?
- 如果我在 Linux 上更改C++动态共享库,而我的可执行程序在其上使用,会发生什么
- 使用 CodeBlocks + GCC 构建的可执行文件是否可以在任何 Windows 上运行?
- 是否有其他方法将.dll文件从一个项目复制到我的启动项目中的可执行文件旁边
- 如何使用CMakeLists.txt为我的可执行文件设置bash中的环境变量
- Cmake不会将共享库的链接依赖关系传播到我的可执行文件
- 我可以将普通文件链接到我的可执行文件中吗?
- 通过我的可执行文件的资源 ID 获取图标索引,C++
- 为什么当我键入名称时我的可执行文件不会运行?(Mac OS X Mountain Lion)Mac OS X 10.8.
- 为什么我不能复制这样的可执行文件?
- CMake没有创建可以访问我的共享库的可执行文件
- 如何覆盖我当前正在运行的可执行文件
- 将图像集成到我的可执行文件中
- 是否可以不让我的可执行文件中的符号可用于动态打开的库
- 我如何在我的可执行文件中使用dll中的图像
- 当我包含一个共享库时,我的可执行文件正在寻找它的两个版本
- 如何将外部库静态链接到我的可执行文件中