- Qt を使用して UI アプリケーションを構築していますが、
- スタティック ライブラリ (.a ファイル) にリンクするはずの Qt アプリケーション
- ライブラリは、C++ および Objective C (*.mm) ファイルによって記述されます。
- 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)
- Qt5.1 と clang、C++11 をサポート
- エラーなしで Xcode4.6 によってビルドされたスタティック ライブラリ myapi.a。QTKit フレームワークを使用する myTestFunction_mac ファイルは 1 つだけです。
- myApp は myapi.a をリンクしますが、myTestFunction_mac.mm 埋め込みファイルにはリンク エラーがあります。