1
  1. 我正在使用 Qt 构建 UI 应用程序,
  2. Qt 应用程序应该链接到静态库(.a 文件)
  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. 带有clang的Qt5.1,支持C++11
  2. 静态库 myapi.a,由 Xcode4.6 构建,没有错误。只有一个文件是 myTestFunction_mac,使用 QTKit 框架。
  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 回答