1

axis2/c webservices フレームワークを使用して単純な 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

Xcode4では、同様にビルド設定で構成しました

ユーザー定義の

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

そのため、ライブラリの検索パスがリンカに入っていないようです。理由はありますか?

4

2 に答える 2

0

の代わりに、ヘッダー検索パスとライブラリ検索パスを明示的に追加します${AXIS2C_HOME}。それはゴミですが、うまくいくはずです。

于 2011-10-08T10:08:03.983 に答える
0

謎が解けました。これは、「プロジェクト」と「ターゲット」の設定が異なる、つまり、一方を変更して他方を変更しなかったことに問題があるようです。元の投稿とすべての作品で説明されているように、新しいビルド設定から始めて再適用しました。疑わしい場合は、「オフにしてから再度オンにしてください」!

于 2011-10-08T18:29:23.437 に答える