1
  1. Qt を使用して UI アプリケーションを構築していますが、
  2. スタティック ライブラリ (.a ファイル) にリンクするはずの Qt アプリケーション
  3. ライブラリは、C++ および Objective C (*.mm) ファイルによって記述されます。
  4. Qt プロジェクト ファイルをセットアップしてスタティック ライブラリをリンクしましたが、Qt Creator では常にリンク エラーが発生し、エラーはスタティック ライブラリにある *.mm に実装されている関数に関連しています。

質問:
ライブラリをリンクする Qt アプリケーションの方法を教えてください。これは純粋な C++ アプリケーション (Qt アプリケーション) であり、C++ と ObjectiveC が混在する静的ライブラリ (.a ファイル) へのリンクです。


更新: リンクエラー

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_QTCaptureDevice", referenced from:
  objc-class-ref in libmyapi.a(myTestFunction_mac.o)
  "_QTMediaTypeVideo", referenced from:
      myTestFunction() in myapi.a(myTestFunction_mac.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [myApp.app/Contents/MacOS/myApp] Error 1
14:38:06: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project myApp (kit: Desktop Qt 5.1.0 clang 64bit)
  1. Qt5.1 と clang、C++11 をサポート
  2. エラーなしで Xcode4.6 によってビルドされたスタティック ライブラリ myapi.a。QTKit フレームワークを使用する myTestFunction_mac ファイルは 1 つだけです。
  3. myApp は myapi.a をリンクしますが、myTestFunction_mac.mm 埋め込みファイルにはリンク エラーがあります。
4

1 に答える 1

0

QTKitアプリのターゲットにフレームワーク を追加する必要があります。

Xcode 4
左側のブラウザ ペインでプロジェクトをクリックします。
[ターゲット] の下のターゲットをクリックします。
[概要] タブをクリックします。
展開されていない場合は、リンクされたフレームワークとライブラリを展開します。
+ アイコンをクリックし、検索ボックスに QTKit と入力して QTkit を追加します。

Xcode 3
プロジェクトを右クリックします。
[追加] --> [既存のフレームワーク] を選択します。
QTkit を追加します。

于 2013-07-29T08:31:53.777 に答える