Проблема компоновщика с Xcode4 building axis2 / c библиотекой - PullRequest
1 голос
/ 08 октября 2011

Я создаю простую библиотеку c, используя инфраструктуру веб-сервисов axis2 / c.Я могу заставить мою библиотеку собираться, используя gcc в командной строке, но у меня возникают трудности с успешной настройкой моего проекта в Xcode4.

Следующая сборка в командной строке работает:

gcc -shared -o liblatlon2pcde.so -I$AXIS2C_HOME/include/axis2-1.6.0/ \ 
    -L$AXIS2C_HOME/lib -laxutil -laxis2_axiom -laxis2_parser -laxis2_engine \
    -lpthread -laxis2_http_sender -laxis2_http_receiver latlon2pcde.c \
    latlon2pcde_skeleton.c

InXcode4 Я настроил параметры сборки аналогично

Определяемый пользователем

AXIS2C_HOME    /usr/local/axis2c

Пути поиска в заголовке

${AXIS2C_HOME}/include/axis2-1.6.0

Пути поиска в библиотеке

${AXIS2C_HOME}/lib

Другие флаги компоновщика

-laxutil -laxis2_axiom -laxis2_parser -laxis2_engine -lpthread -laxis2_http_sender -laxis2_http_receiver

Однако сборка завершается неудачно, сообщая, что не удалось найти -laxutil

ld: library not found for -laxutil
Command /Developer/usr/bin/clang failed with exit code 1

Полный вывод:

Build target latlon2pcde

Ld /Users/greg/Library/Developer/Xcode/DerivedData/latlon2pcde-diklkgmudvrwwmcnlbjubeshwrqq/Build/Products/Debug/liblatlon2pcde.dylib normal x86_64
cd "/Users/greg/Documents/Development/latlon2pcde/axis2 service"
setenv MACOSX_DEPLOYMENT_TARGET 10.7
/Developer/usr/bin/clang -arch x86_64 -dynamiclib -isysroot /Developer/SDKs/MacOSX10.7.sdk -L/Users/greg/Library/Developer/Xcode/DerivedData/latlon2pcde-diklkgmudvrwwmcnlbjubeshwrqq/Build/Products/Debug -F/Users/greg/Library/Developer/Xcode/DerivedData/latlon2pcde-diklkgmudvrwwmcnlbjubeshwrqq/Build/Products/Debug -filelist /Users/greg/Library/Developer/Xcode/DerivedData/latlon2pcde-diklkgmudvrwwmcnlbjubeshwrqq/Build/Intermediates/latlon2pcde.build/Debug/latlon2pcde.build/Objects-normal/x86_64/latlon2pcde.LinkFileList -install_name /usr/local/lib/liblatlon2pcde.dylib -mmacosx-version-min=10.7 -laxutil -laxis2_axiom -laxis2_parser -laxis2_engine -lpthread -laxis2_http_sender -laxis2_http_receiver -single_module -compatibility_version 1 -o /Users/greg/Library/Developer/Xcode/DerivedData/latlon2pcde-diklkgmudvrwwmcnlbjubeshwrqq/Build/Products/Debug/liblatlon2pcde.dylib

ld: library not found for -laxutil
Command /Developer/usr/bin/clang failed with exit code 1

Так чтоПохоже, мой путь поиска в библиотеке не попадает в компоновщик.Есть идеи почему?

Ответы [ 2 ]

0 голосов
/ 08 октября 2011

Тайна раскрыта.Похоже, это была проблема с расходящимися настройками «Project» и «Target», то есть я изменил одно, но не другое.Я начал со свежих настроек сборки, повторно применил, как описано в моем исходном посте, и все работает.В случае сомнений «выключите его и включите снова»!

0 голосов
/ 08 октября 2011

Явно добавьте пути поиска заголовка и поиска библиотеки вместо ${AXIS2C_HOME}. Это мусор, но он должен работать.

...