0

私はSOAPベースのWebサービス用のクライアントを書いています。gSOAPを使用していますが、リリースビルドとデバッグビルドでは正常に機能しますが、計測器でプロファイリングを行うことはできません。

次のエラーが表示されます。

Undefined symbols for architecture armv7:
  "_soap_set_recv_logfile", referenced from:
      _main2 in gSOAPService.o
  "_soap_set_test_logfile", referenced from:
      _main2 in gSOAPService.o
  "_soap_set_sent_logfile", referenced from:
      _main2 in gSOAPService.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

ここで参照されている関数は、gSOAPロギングを抑制するために使用されます。これにより、要求/応答シーケンスに関するアプリケーションの実行時間が大幅に遅くなります。

なぜこれが起こっているのか考えていますか?

4

2 に答える 2

0

それはあなたを助けるかもしれません。ターゲットのビルド設定に移動します。そこに有効なアーキテクチャ行があります。(armv7を削除します。armv7のみを使用します)。

于 2013-02-06T09:58:36.633 に答える
0

SOAP_DEBUGこれらの関数は、が定義されている場合にのみ存在します。リリースまたはプロファイルを実行しているとき、このディレクティブはオフになりました。

#ifdef SOAP_DEBUGそれらの関数を呼び出す前に置くことによってそれを解決しました。

#ifdef SOAP_DEBUG
    soap_set_sent_logfile(soap, NULL);
    soap_set_recv_logfile(soap, NULL);
    soap_set_test_logfile(soap, NULL);
#endif 
于 2013-02-06T13:30:23.017 に答える