将库放在Linux中的exe文件夹中
Posted
技术标签:
【中文标题】将库放在Linux中的exe文件夹中【英文标题】:put libraries inside exe folder in Linux 【发布时间】:2015-05-30 15:08:07 【问题描述】:我正在尝试制作一个可移植的 Linux 应用程序,其中所有必需的库都包含在该文件夹中。 但是如果我只是将它们放在可执行文件旁边的文件夹中,它说它找不到库。 那么我如何才能在一个文件夹中发布包含所有必需库的应用程序呢?
【问题讨论】:
查找LD_LIBRARY_PATH
。
是的,但我必须为每台我想在其上运行应用程序的 PC 设置它。没有办法解决这个问题吗?
“没有办法解决这个问题吗?” 我不知道。
所以每次我运行应用程序时,我必须手动设置一个环境变量?或者有没有办法使用脚本将变量设置为当前路径并启动应用程序,我可以在没有 root 的情况下使用?
你的安装脚本应该把它放在用户或机器的启动配置文件中。
【参考方案1】:
我正在尝试制作一个可移植的 Linux 应用程序,其中所有必需的库都包含在文件夹中。
您正在寻找的是带有RPATH
的二进制文件,其中包含$ORIGIN
。例如,构建你的二进制文件:
gcc -o myexe main.o ... '-Wl,-rpath=$ORIGIN/'
(注意:单引号是必需的。)将导致myexe
在找到二进制文件本身的同一目录中查找共享库。
【讨论】:
以上是关于将库放在Linux中的exe文件夹中的主要内容,如果未能解决你的问题,请参考以下文章