Использование boost на iPhone - PullRequest
4 голосов
/ 11 июля 2009

После многих хакерских атак мне удалось скомпилировать библиотеки boost для iphone, как устройства, так и симулятора, но когда я пытаюсь их использовать, в отладчике xcode выдается ошибка:

dyld: Library not loaded: libboost_graph.so.1.40.0

который я догадываюсь, это динамический загрузчик библиотеки, который не разрешен на iphone. я связываю приложение с -Lboost_graph в качестве флага компилятора.

это скрипт, который я использовал для создания надстройки:

./bjam $1 $2 $3 \
        toolset=darwin \
        architecture=arm \
        target-os=iphone \
        macosx-version=iphone-3.0 \
        define=_LITTLE_ENDIAN \
        --layout=system \
        --libdir=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/lib \
        --includedir=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/include \
        link=static \
        runtime-link=static

./bjam $1 $2 $3 \
        toolset=darwin \
        architecture=x86 \
        target-os=iphone \
        macosx-version=iphonesim-3.0 \
        --layout=system \
        --libdir=/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/lib \
        --includedir=/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/include \
        link=static \
        runtime-link=static

Полагаю, мне здесь чего-то не хватает, но что?

- библиотека, скомпилированная для динамической загрузки (в платформе / usr / lib есть и .a-файл, и .so-файл)

1 Ответ

2 голосов
/ 12 июля 2009

Я могу ошибаться, но я думаю вам нужно статически связать ваше приложение с boost - сообщение об ошибке от dyld говорит о том, что вы в данный момент ссылаетесь на библиотеку динамического повышения (обратите внимание на .so суффикс в сообщении об ошибке - вы хотите связать со статическим - libboost.a

Вы, вероятно, хотите связать свое приложение с чем-то вроде:

-iboost_graph -static

(при условии, что файл .a называется libboost_graph.a)

...