c++ - 将库放入 Linux 中的 exe 文件夹中

标签 c++ linux shared-libraries portability

我正在尝试制作一个可移植的 Linux 应用程序,其中所有必需的库都包含在文件夹内。
但如果我只是将它们放在可执行文件旁边的文件夹中,它会说找不到库。
那么我如何才能发布一个在一个文件夹内包含所有必需库的应用程序呢?

最佳答案

I'm trying to make a portable Linux application where all required libraries are included inside the folder.

您正在寻找的是带有 RPATH 的二进制文件,其中包含 $ORIGIN。例如,使用以下命令构建二进制文件:

gcc -o myexe main.o ... '-Wl,-rpath=$ORIGIN/'

(注意:单引号是必需的。)将导致myexe在二进制文件本身所在的同一目录中查找共享库。

关于c++ - 将库放入 Linux 中的 exe 文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30547722/

相关文章:

c++ - 为什么派生类虚函数可以调用基类虚函数?编译器如何实现?

c++ - 将 char 添加到字符串会导致 C++ 崩溃

linux - qemu-arm-static 中默认的 qemu arm 环境是什么?

c++ - C/C++ 动态链接库重载

c++ - 如何在共享库中隐藏导出的符号名称

c++ - 将结构数组传递给函数并通过函数更改它

linux - 如何在 Alpine Linux 中使用 bash 脚本?

c++ - 应用程序中的嵌入式控制台工具功能

c++ - 无法链接到现有的 libopenblas.so.0 DLL

c++ - Qmake给我错误