Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OSX:有没有延迟加载依赖库(.dylib)的方法? 一个依赖于C++的库。DyLIB位于一个位于App包的内容/框架中的包中。我想延迟加载依赖库,直到我完成一些特定的初始化_C++_Xcode_Macos_Dylib_Dynamic Library - Fatal编程技术网

OSX:有没有延迟加载依赖库(.dylib)的方法? 一个依赖于C++的库。DyLIB位于一个位于App包的内容/框架中的包中。我想延迟加载依赖库,直到我完成一些特定的初始化

OSX:有没有延迟加载依赖库(.dylib)的方法? 一个依赖于C++的库。DyLIB位于一个位于App包的内容/框架中的包中。我想延迟加载依赖库,直到我完成一些特定的初始化,c++,xcode,macos,dylib,dynamic-library,C++,Xcode,Macos,Dylib,Dynamic Library,除了创建运行时加载的库之外,还有其他方法吗?使用弱链接选项是否会阻止在首次引用之前加载.dylib?您的意思是延迟链接: ld -o test test.o -lazy_library /usr/lib/libz.dylib ld -o test test.o -lazy-lz 当Zlib压缩库中的例程第一次运行时,这两种方法都会加载Zlib压缩库。问题是在初始化完成之前不要从自定义库运行例程 弱链接意味着“如果库丢失,请将其所有符号设置为空,不要停止” 注意:用你的库替换Zlib(/usr/

除了创建运行时加载的库之外,还有其他方法吗?使用弱链接选项是否会阻止在首次引用之前加载.dylib?

您的意思是延迟链接:

ld -o test test.o -lazy_library /usr/lib/libz.dylib
ld -o test test.o -lazy-lz
当Zlib压缩库中的例程第一次运行时,这两种方法都会加载Zlib压缩库。问题是在初始化完成之前不要从自定义库运行例程

弱链接意味着“如果库丢失,请将其所有符号设置为空,不要停止”


注意:用你的库替换Zlib(
/usr/lib/libz.dylib
)。

非常酷的技巧!我确实收到了以下错误:ld:在延迟加载的动态库中,对u zn9wbrefspect1ev的非法数据引用,其中损坏的符号引用类析构函数:_WBRefSpec::~WBRefSpec(),这是什么原因?IDK。也许有些符号不可能是软弱的?正如你所指出的,这不是软弱,而是懒惰。不管是哪种方式——似乎没有人知道非法数据引用错误的答案,因此我必须向Apple开发者支持人员询问……注意:非法数据引用的答案是有一个.cpp文件,其中的类成员函数声明为“static WBRefSpec foo;”删除了该错误,而且,答对了,没有链接错误。