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