C++ 将库放在Linux中的exe文件夹中

C++ 将库放在Linux中的exe文件夹中,c++,linux,shared-libraries,portability,C++,Linux,Shared Libraries,Portability,我正在尝试制作一个可移植的Linux应用程序,其中所有必需的库都包含在文件夹中。 但是如果我把它们放在可执行文件旁边的文件夹中,它会说找不到库。 那么,如何在一个文件夹中发布包含所有必需库的应用程序呢 我正在尝试制作一个可移植的Linux应用程序,其中所有必需的库都包含在文件夹中 您要查找的是包含$ORIGIN的带RPATH的二进制文件。例如,使用以下内容构建二进制文件: gcc -o myexe main.o ... '-Wl,-rpath=$ORIGIN/' (注意:需要单引号。)将导致m

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

我正在尝试制作一个可移植的Linux应用程序,其中所有必需的库都包含在文件夹中

您要查找的是包含
$ORIGIN
的带
RPATH
的二进制文件。例如,使用以下内容构建二进制文件:

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

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

Lookup
LD_LIBRARY\u PATH
。是的,但我必须为要运行应用程序的每台PC设置它。没有办法吗?“没有办法吗?”我不知道。所以每次运行应用程序时,我都必须手动设置一个环境变量?或者有没有一种方法可以使用脚本将变量设置为当前路径并启动应用程序,我可以在没有root的情况下使用该脚本?您的安装脚本应该将其放在用户或计算机的启动配置文件中。