アプリケーションにgsoapを追加しようとしています。i386用のgsoapを作成しました。underコマンドでcコードを作成しました:
wsdl2h -c -s -o soap.h soap.wsdl
soapcpp2 -c -C soap.h
ファイルを取得しました。この後、これらをアプリに含めようとしました。xCodeでプロジェクトに追加しました。また、6つのライブラリ(libgsoap.a、libgsoap ++。a、libgsoapck.a、libgsoapck ++。a、libgsoapssl.a、libgsoapssl ++。a)を追加しました。ターゲット=>ビルドフェーズ=>ライブラリとバイナリをリンクするにライブラリを追加しました。しかし、エラーが発生しました。
ld: duplicate symbol .....
私はそれがファイルsoapClientLib.cで起こった原因だと思った:それは:
#ifndef WITH_NOGLOBAL
#define WITH_NOGLOBAL
#endif
#define SOAP_FMAC3 static
#include "soapC.c"
#include "soapClient.c"
これらに対するコメントは次のとおりです。
Use this file in your project build instead of the two files soapC.c and soapClient.c. This hides the serializer functions and avoids linking problems when linking multiple clients and servers
コンテンツを削除しました。しかし、この後、次のエラーが発生しました...
Undefined symbols for architecture i386:
"_namespaces", referenced from:
_soap_init_LIBRARY_VERSION_REQUIRED_20812 in libgsoap.a(libgsoap_a-stdsoap2.o)
(maybe you meant: _soap_set_namespaces, _soap_set_local_namespaces )
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
そして今、私にはわかりません...私はWindowsでgsoapを使用し、それを5分間プロジェクトに追加しました。しかし、私はそれをmacosに追加するのに多くの時間を無駄にしました。手伝って頂けますか?