我真的陷入了这个问题......我希望你能帮助我。Apple Mach-O Linker(Id)使用gSOAP的错误
我正在为一家公司开发一款iPad应用程序,这需要使用安全的SOAP Web服务......而不是完美的组合!我知道,事情是,看看周围的谷歌,我发现“最好”的事情是做一个WS客户端使用gSOAP,这就是我做的!现在我有一个用C++编写的WS客户端。
当我尝试调用的WS的方法之一,并构建应用程序......这是发生了什么:
Ld /Users/me/Library/Developer/Xcode/DerivedData/App-akcairabnqiunvddtmwphaispprl/Build/Products/Debug-iphonesimulator/App.app/App normal i386
cd /Users/me/iOS/App
setenv MACOSX_DEPLOYMENT_TARGET 10.6
setenv PATH '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin'
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch i386 -isysroot
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk
-L/Users/me/Library/Developer/Xcode/DerivedData/App-akcairabnqiunvddtmwphaispprl/Build/Products/Debug-iphonesimulator
-L/Users/me/iOS/App -F/Users/me/Library/Developer/Xcode/DerivedData/App-akcairabnqiunvddtmwphaispprl/Build/Products/Debug-iphonesimulator
-F/Applications/Xcode.app/Contents/Developer/Library/Frameworks
-filelist /Users/me/Library/Developer/Xcode/DerivedData/App-akcairabnqiunvddtmwphaispprl/Build/Intermediates/App.build/Debug-iphonesimulator/App.build/Objects-normal/i386/App.LinkFileList
-mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -Xlinker -no_implicit_dylibs -D__IPHONE_OS_VERSION_MIN_REQUIRED=50100
-framework SenTestingKit -framework Foundation -framework UIKit -framework QuartzCore -framework CoreGraphics -ldataSOAPlibDev
-o /Users/me/Library/Developer/Xcode/DerivedData/App-akcairabnqiunvddtmwphaispprl/Build/Products/Debug-iphonesimulator/App.app/App
ld: warning: ignoring file /Users/me/iOS/App/libdataSOAPlibDev.a,
文件归档建这是不被连接的架构(I386 )
Undefined symbols for architecture i386:
'soap::soap()', referenced from:
-[ViewContratosController viewDidLoad] in ViewContratosController.o
'_soap_init_LIBRARY_VERSION_REQUIRED_20808', referenced from:
-[ViewContratosController viewDidLoad] in ViewContratosController.o
'soap_call_ns1__obtenerPais(soap*, char const*, char const*, ns2__paisFile*,
ns1__obtenerPaisResponse&)', referenced from:
-[ViewContratosController viewDidLoad] in ViewContratosController.o
'soap::~soap()', referenced from:
-[ViewContratosController viewDidLoad] in ViewContratosController.o
'ns2__paisFile::soap_default(soap*)', referenced from:
ns2__paisFile::ns2__paisFile() in ViewContratosController.o
'vtable for ns2__paisFile', referenced from:
ns2__paisFile::ns2__paisFile() in ViewContratosController.o
注:缺少虚函数表通常意味着第一非内嵌虚拟成员函数没有定义。 LD:符号(S)没有找到i386硬件架构 铛:错误:连接命令,退出代码为1(使用-v看看调用)
的说明可以告诉这个问题失败...但我don'不知道如何解决它...任何想法?
谢谢!
首先,感谢您的快速回答!我一直致力于在主项目的相同体系结构中构建libdataSOAPlibDev.a库,但问题并没有消失!好处是我意识到我在静态库的目标(libdataSOAPlibDev.a)的“编译源文件”中丢失了一些cpp文件...我不得不说,这个库包含由gSOAP生成的文件( .h,.cpp和.xml)。现在的问题是,我有一个新的错误:这次是:
ld: duplicate symbol soap_instantiate_std__string
...这是重复的...但由gSOAP建成! :(( – VaroX 2012-04-12 13:31:26