Linux 在汇编时指定图书馆目录

Linux 在汇编时指定图书馆目录,linux,macos,unix,installation,gnu-make,Linux,Macos,Unix,Installation,Gnu Make,我能够使用 gcc myexec-o obj1.obj-o obj2.obj…和链接xxx.dylib 我将myexec部署到另一台机器上。当然,myexec需要xxx.dylib才能运行 为此,我使用xxx.dylib和myexec创建了myInstallFolder 在部署时,通过将DYLD_LIBRARY_路径点设置为myInstallFolder,我可以使myexec选择xxx.dylib 但是,我希望避免使用DYLD_LIBRARY_PATH 在编译/链接时应该做什么更改才能使myex

我能够使用

gcc myexec-o obj1.obj-o obj2.obj…和链接xxx.dylib

我将myexec部署到另一台机器上。当然,myexec需要xxx.dylib才能运行

为此,我使用xxx.dylib和myexec创建了myInstallFolder

在部署时,通过将DYLD_LIBRARY_路径点设置为myInstallFolder,我可以使myexec选择xxx.dylib

但是,我希望避免使用DYLD_LIBRARY_PATH

在编译/链接时应该做什么更改才能使myexec从myInstallFolder中提取


~Ryder

您可以指示链接器将路径写入加载程序用于加载的二进制文件中。因此,文件:

-Wl,-R<path to myInstallFolder>

如果您希望经常使用gcc,1。阅读gmake及其相关的makefile,2。将您的帖子上的一个标签更改为gmake。祝你好运。我试过Wl,-L/usr/local/lib,但没有成功。我将尝试使用-R。但是,当我需要部署myexec,比如说100个系统时,我如何指定这样的目录来保证存在?@user1385988要知道某个特定目录存在,请检查它,如果它不存在,则创建它。这通常是使用某种安装脚本完成的。如果你要打包二进制文件(.deb,.rpm),你需要学习如何在这个上下文中打包。@用户1385988,为了避免混淆:如果你把你的库放在
/usr/local/lib
中,就不需要
LD\u library\u PATH
和其他类似
-R
的技巧。此路径通常是要查找.so文件的预定义位置的一部分。但是,在将库放在那里之后,您可能需要运行
ldconfig
,让加载程序看到它。
-Wl,-R/usr/local/mybin/lib