我有一个 Qt4.8.4 桌面应用程序,可以在我的 Macbook Pro 上构建和运行良好,运行带有 Xcode 5.0.2 的 Mountain Lion,使用带有 Qt 4.8.4 和 GCC(x86 64 位)的 Qt Creator 2.7.0。我正在尝试将我的应用程序移植到 Qt 5.2.1。我的代码是带有一些 Objective-C 的 C++。
我用这个配置在我的同一台 Macbook pro 上构建了 Qt5.2.1:
./configure -prefix $PWD/qtbase -debug-and-release -developer-build -no-c++11 -opensource -plugin-sql-sqlite -nomake tests -confirm-license
它配置和构建良好。
当我尝试使用 Qt 5.2.1 和 GCC(x86 64 位)或 Clang(x86 64 位)在 Qt Creator 2.7.0 中构建我的应用程序时,我收到很多错误,在我看来这些错误表明 Objective-C 部分我的应用程序找不到他们需要的库。例如:
/Users/david/dev/svn/map_creator3/src/widgets/mac_toolbar_button_proxy.mm:15: warning: instance method '-selectedSegment' not found (return type defaults to 'id') [-Wobjc-method-access]
target_->TriggerAction([sender selectedSegment]);
^~~~~~~~~~~~~~~
/Users/david/dev/svn/map_creator3/src/common/locations_mac.mm:34: error: use of undeclared identifier 'NSWorkspace'
[[NSWorkspace sharedWorkspace]
^
/Users/david/dev/svn/map_creator3/src/widgets/mac_toolbar_button_control.mm:30: error: unknown type name 'NSAutoreleasePool'
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
^
还有很多类似的。在 C++ Qt5 桌面应用程序中使用 Object-C 需要添加一些魔法设置吗?