我写一个C++的命令行工具为Mac OS 10.5+用的XCode 3.2.5是这样写的: -延迟加载Dylibs
int main()
{
...
if (a == b)
{
doWork() // defined in my.dylib
doOtherWork() // defined in his.dylib
}
}
但是它崩溃甚至当A和B是不相等的: -
Lab-Computer-9adf72:tmp labuser$ ./myapp
dyld: Library not loaded: ./my.dylib
Referenced from: /private/tmp/./myapp
Reason: image not found
Trace/BPT trap
有没有办法让应用程序至少在函数不被调用时工作?或者让装载只发生在懒惰?
有多个这样的函数被多个dylibs调用,所以每个函数的检查将是最后的手段,但即使这样做也会有所帮助。
所有的动态加载函数都有返回值,可以让您判断加载是否成功。 –