通过重新编译 wxwidgets 3.1.0 和 Opencv 3.1 解决了这个问题(以及更多问题)。我使用这些链接来实现它。
针对 C++ 11 编译 wxWidgets、Opencv 的小指南:
编译 wxwidgets 3.1.0:我遵循了 OSX 的 install.txt。并在此帮助下调整了 ../configure 调用
我补充说:--enable-debug
并更改了macosx版本
../configure --disable-shared --enable-debug --enable-unicode --with-cocoa --with-macosx-version-min=10.7 --with-macosx-sdk=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk CXXFLAGS="-std=c++0x -stdlib=libc++" CPPFLAGS="-stdlib=libc++" LIBS=-lc++
然后在这个页面的帮助下,我构建了一个 xcode 项目。调整一些东西:(wxcocoa.xcodeproj 和 minimum.xcodeproj,以及一个全新的项目)
- 添加到标题搜索路径:(
$(WXROOT)/build/osx
找到wx.xcconfig)
- 基础 SDK:最新的 OS X (10.11)
- C语言方言:(
GNU 11
不确定是否正确)
- C++语言方言:
GNU++11 [-std=gnu++11]
- C++ 标准库:
libc++ (LLVM C++ standard library with C++ 11 support)
- 将 WXROOT 放在“preference->locations->Source Trees 下。不重要,但似乎是更好的位置(重启xcode)
- 在 wxcocoa.xcconfig 我改变了:
MACOSX_DEPLOYMENT_TARGET = 10.10
- 不知何故,我必须将创建的库的名称从更改
libwx_osx_cocoa_static.a
为:(lwx_osx_cocoa_static.a
为什么,我不知道)
我使用 GNU++ 11 和 libc++ 来使用像“未来”这样的新功能,然后我将 OpenCV 添加到我新创建的 wxXcode 项目中:
- 按照以下方式编译 OpenCV:(在网上搜索:howto-install-build-and-use-opencv-macosx-10-10)
- 确保 SDK 是正确的版本(这是我最大的问题),匹配 wxWidgets 的构建
编译器设置与 wxWidgets 相同(见上文)(已添加:)为此,我CMakeLists.txt
在(Opencv-master 文件夹)中添加了一些行。在这条线下面:(# OpenCV compiler and linker options
我在这里找到了这个技巧:在网上搜索:OpenCV with C++11 on OS X 10.8
message("使用 libc++ 为 C++11 设置 Xcode。") set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++0x") set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
然后按照这个页面更新新创建的 wxWidgets xcode 项目(在网上搜索:howto-setup-xcode-6-1-to-work-with-opencv-libraries)
这应该可以解决问题!我现在可以结合 wxWidgets、OpenCV 和 libc++(多线程,“未来”)
我希望这有帮助。如果您发现更多信息,请告诉我!