- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我使用动态链接到另一个的 premake (gmake) 构建了一个二进制文件。当我随后尝试运行二进制文件时,它提示找不到动态库。
ldd
在二进制文件上,当然还有动态库是 => Not Found!
我当然可以export LD_LIBRARY_PATH=<path of the dynamic library
> 但我不想那样。
我希望二进制文件能够在不同的机器上开箱即用(当然假设动态库位置没有改变)
1- 人们如何做到这一点?他们设置了RPATH
一直通过链接器标志?
根据我收集到的信息,RUNPATH
可以被 LD_LIBRARY_PATH
覆盖但 RPATH
并非如此.
有 -rpath
和 --enable-new-dtags
将指示 gcc
的选项(或者更准确地说是链接器)同时设置 RUNPATH
和 RPATH
到相同的值,但这不是我真正想要的,我什至看不出那有什么意义。
2- 这有什么意义?
3- 我错过了什么吗?如何设置 RUN_PATH
仅,因此通常会自动找到依赖项(在 RUN_PATH
中),除非指示使用 LD_LIBRARY_PATH
搜索特定路径首先。
最佳答案
在我的笔记本电脑上,路径可能与您的不同,但“-d”选项应该可以。
用法:c:/strawberry/c/bin/../lib/gcc/x86_64-w64-mingw32/4.7.3/../../../../x86_64-w64-mingw32/bin/ld.exe [选项] 文件...
选项: -d, -dc, -dp 强制定义公共(public)符号
关于linux - 如何在不设置 RPATH 的情况下设置 RUNPATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26924826/
我是一名优秀的程序员,十分优秀!