OSX - GCC / Clang - 如何使用 rpath 设置动态非标准 Library/Framework 路径?
OSX - GCC / Clang - How to set a dynamic non-standard Library/Framework path with rpath?
我正在使用 OS X - SDL2 https://www.libsdl.org/download-2.0.php 并将框架作为可执行文件的资源。
我 link 相当正常地使用 -F/Path/to/local/framework -framework SDL2 但我还添加了 -Wl,-rpath,./Library/Frameworks 这允许我 运行 根目录中的可执行文件,因为它搜索 "relative" 路径以查找框架。
当我想从其他目录运行 可执行文件时出现问题。 SDL 有资产的动态文件路径加载,所以这不是问题,只是它找不到库,并给出: "dyld library not loaded image not found" 我只能归因于相对 rpath link.
知道如何允许我的 "non-standard" Library/Framework 路径使用 GCC、C、OS X 吗? rpath 好像不行。
注意这一切都是在 Makefile 中完成的。
编辑:我刚刚发现:@executable_path 还没有测试。将测试并回复我们。
在本地库的路径中使用@executable_path 可以消除这个问题,即使在编译和下载二进制文件之后也是如此。
我正在使用 OS X - SDL2 https://www.libsdl.org/download-2.0.php 并将框架作为可执行文件的资源。
我 link 相当正常地使用 -F/Path/to/local/framework -framework SDL2 但我还添加了 -Wl,-rpath,./Library/Frameworks 这允许我 运行 根目录中的可执行文件,因为它搜索 "relative" 路径以查找框架。
当我想从其他目录运行 可执行文件时出现问题。 SDL 有资产的动态文件路径加载,所以这不是问题,只是它找不到库,并给出: "dyld library not loaded image not found" 我只能归因于相对 rpath link.
知道如何允许我的 "non-standard" Library/Framework 路径使用 GCC、C、OS X 吗? rpath 好像不行。
注意这一切都是在 Makefile 中完成的。
编辑:我刚刚发现:@executable_path 还没有测试。将测试并回复我们。
在本地库的路径中使用@executable_path 可以消除这个问题,即使在编译和下载二进制文件之后也是如此。