在OSX上,我可以使用clang编译器编译C++源代码,并通过设置环境变量$LD_RUN_PATH告诉编译器动态库的位置。我想知道是否有一个相当的方法来搜索运行时动态库路径?
非常感谢!
编辑:
下面给出的重复链接不是我想要的!
我想将dylib的搜索路径编译到可执行文件中。在运行时,不能显式地设置$DYLD_LIBRARY_PATH环境路径中的任何路径信息。也就是说,当你回显$DYLD_LIBRARY_PATH时,不应该看到任何指向dylib的路径。
我通过使用以下方式实现了这一点:
非常感谢!
编辑:
下面给出的重复链接不是我想要的!
我想将dylib的搜索路径编译到可执行文件中。在运行时,不能显式地设置$DYLD_LIBRARY_PATH环境路径中的任何路径信息。也就是说,当你回显$DYLD_LIBRARY_PATH时,不应该看到任何指向dylib的路径。
我通过使用以下方式实现了这一点:
otool -L <executable>
阅读我的可执行文件中的搜索路径。
对于任何错误或缺少的搜索路径,我使用install_name_too来更新或添加搜索路径信息。
对于我来说,我正在改变我的原始链接路径。我使用
install_name_tool -change <old_path> <new_path> <executable>
用于链接路径设置。在此之后,我可以正确运行可执行文件,将其链接到dylib,而无需在$LD_LIBRARY_PATH或$LD_FALLBACK_LIBRARY_PATH中设置任何内容。
DYLD_LIBRARY_PATH
的使用是错误的。请注意,该变量应在运行可执行文件时设置。 - TsyvarevDYLD_LIBRARY_PATH
变量。实际上,即使使用原始措辞,你的问题也显然不是重复的。对此造成的不便表示歉意。我投票支持重新开放。 - Tsyvarev