c++ - 如何制作不依赖于 .so 文件的可执行二进制文件

标签 c++ linux

目前我正在通过g++编译uisng获取可执行文件:

g++-4.8 test test.cpp -I /home/pottsie/Documents/Cpp-REST-SDK/casablanca/Release/include/ -lcasablanca -std=gnu++11

但是,当我在另一台机器上尝试执行该可执行文件时,出现错误:

error while loading shared libraries: libcasablanca.so: cannot open shared object file: No such file or directory

是否可以创建一个不需要我在要运行它的计算机上安装 casablanca 的可执行文件?

最佳答案

您可以添加-static 来静态链接您需要的库。当然,您需要将它们作为 .a

g++-4.8 test test.cpp -I /home/pottsie/Documents/Cpp-REST-SDK/casablanca/Release/include/ -static -lcasablanca -std=gnu++11

关于c++ - 如何制作不依赖于 .so 文件的可执行二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22764383/

相关文章:

c++ - 当 GUI 线程在 Qt 中空闲时发出信号?

c++ - 使用 (void*) 作为标识符的一种类型

java - 安装Maven 3.0.4

c - 如何在 C 中监听方向键按下

linux - 在FC 15中找不到apache目录

c++ - 如何使用 C++11 type_traits 创建自定义元编程测试结构?

c++ - 如何配置CMakeLists.txt来制作C++项目?

c++ - C++ NT2 库文档在哪里?它是否具有默认的 popcount 函数?

python - 检查文件夹大小是否大于特定大小的最快方法是什么?

linux - 如何比较 2 个 linux 文件夹的内容和模式?