【发布时间】:2011-10-08 09:30:38
【问题描述】:
我正在使用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
所以看起来我的库搜索路径没有进入链接器。任何想法为什么?
【问题讨论】:
-
是的,看起来你是对的;命令行中应该有一个
-L/usr/local/axis2c。您是否将其用于客户端 Web 服务访问?我想知道是什么让您选择 this 框架而不是其他框架(我想尽快自己访问 Web 服务)? -
我正在使用它来编写在 apache 轴模块中运行的服务。对我来说,一个好处是它在某种程度上支持 REST,我对 SOAP 还不太感兴趣。如果不需要 REST 支持,您可能需要查看 gSoap。
-
是的,我也在看 gsoap。但是,我想从 iOS 进行 Web 服务客户端访问,这可能会很有趣...
-
是的,这不是一件小事。我在 iOS 中使用 gSoap 制作了一个客户端,效果很好。我不相信axis2/c 已经移植到iOS。如果您的要求很简单,您最好使用 NSXML 手工制作您的请求。
-
我忘了补充,还有 SudzC sudzc.com。我无法让存根为我的应用程序工作,但您可能想试一试。