Я пишу 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
}
}
Однако он выходит из строя, даже если б не равны: -
Lab-Computer-9adf72:tmp labuser$ ./myapp
dyld: Library not loaded: ./my.dylib
Referenced from: /private/tmp/./myapp
Reason: image not found
Trace/BPT trap
Есть ли способ заставить приложение работать, по крайней мере, когда функции не вызываются? Или сделать загрузку только лениво?
Существует несколько таких функций, которые вызывают из нескольких dylib, поэтому проверка на каждую функцию будет последней, но даже это поможет.
Все ваши функции динамической загрузки имеют возвращаемые значения, которые позволяют вам сделать вывод о том, удалось ли загрузить нагрузку. –