OS X:以任何方式延迟加载依赖库(.dylib)? [英] OS X: Any way to DELAY loading of a DEPENDENT library (.dylib)?

查看:100
本文介绍了OS X:以任何方式延迟加载依赖库(.dylib)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

一个C ++依赖库.dylib驻留在应用程序包的Content/Frameworks中的捆绑包中.我想延迟该依赖库的加载,直到完成一些特定的初始化为止.

A C++ dependent library .dylib resides in a bundle located in the app package's Content/Frameworks. I'd like to DELAY the loading of that dependent library until I've completed some specific initialization.

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

Is there any way OTHER THAN to create a Runtime-Loaded Library? Would using weak linking options prevent the .dylib from being loaded until first referenced?

推荐答案

您的意思是惰性链接:

ld -o test test.o -lazy_library /usr/lib/libz.dylib
ld -o test test.o -lazy-lz

在第一次运行Zlib压缩库时,两者都加载Zlib压缩库.问题是在初始化完成之前不要从自定义库中运行例程.

Both load the Zlib compression library when a routine from it is first run. The problem is not to run the routines from your custom library before the initialization is finished.

弱链接意味着如果缺少库,请将其所有符号设置为NULL,不要停止".

Weak linking means "if library is missing, set all its symbols to NULLs, don't halt".

注意::将Zlib(/usr/lib/libz.dylib)替换为您的库.

NOTICE: replace Zlib (/usr/lib/libz.dylib) with your library.

这篇关于OS X:以任何方式延迟加载依赖库(.dylib)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆