我试图在我只在运行时知道路径的mac上加载一个框架(或dylib)。
窗户解决方案:
- 使用 /DELAYLOAD 链接库
- 就在使用库中的函数之前,将程序中的当前目录更改为dll所在的目录
- 从这个库中调用一些函数。dll从当前目录加载
在 mac 上,我可以使用弱链接来使应用程序启动,而该库尚不可用。但是,一旦需要库中的某些功能,我就会得到“找不到图像”,并且应用程序被中止。
如何在运行时告诉 Mac 动态链接器在哪里寻找库?“dlopen”不起作用,因为它只加载库而不解析符号。将 rpath 设置为“。” (当前目录)和更改当前目录不起作用。设置典型环境变量 (DYLD_LIBRARY_PATH) 仅在运行可执行文件之前完成,而不是在运行时。
还有其他想法吗?