我寫一個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調用,所以每個函數的檢查將是最後的手段,但即使這樣做也會有所幫助。
所有的動態加載函數都有返回值,可以讓您判斷加載是否成功。 –