使用cuda为MAC编译opencv

时间:2013-04-22 10:34:48

标签: macos opencv g++ clang

我正在尝试使用Mac OS X中的CUDA支持编译opencv 2.4.5。我正在使用cmake gui 2.8.10和Qt 4.8

之后

clang: error: unsupported option '-dumpspecs' 

在make中我已将条目CUDA_HOST_COMPILER设置为/ usr / bin / llvm -g ++。但是现在我收到了这个错误:

[ 16%] Built target IlmImf
[ 16%] Building NVCC (Device) object modules/core/CMakeFiles/cuda_compile.dir/src/cuda/./cuda_compile_generated_matrix_operations.cu.o
cc1plus: warning: command line option "-Wmissing-declarations" is valid for C/ObjC but not for C++
cc1plus: warning: command line option "-Wstrict-prototypes" is valid for Ada/C/ObjC but not for C++
cc1plus: error: unrecognized command line option "-Wno-narrowing"
cc1plus: error: unrecognized command line option "-Wno-delete-non-virtual-dtor"
cc1plus: error: unrecognized command line option "-Wno-unnamed-type-template-args"

我现在能做什么?

系统设置

OS X 10.8.3 (12D78)

>>> clang --version
Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.3.0
Thread model: posix

>>> g++ --version
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
>>> ls -al /usr/bin/g++
/usr/bin/g++ -> llvm-g++-4.2

>>> cc --version
Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.3.0
Thread model: posix
>>> ls -al /usr/bin/cc
/usr/bin/cc -> clang

3 个答案:

答案 0 :(得分:1)

使用GCC和G ++进行编译。我在OSX Mountain Lion上使用了CMake 2.8.11和最新的Xcode编译器:

g ++ --version返回i686-apple-darwin11-llvm-g ++ - 4.2(GCC)4.2.1(基于Apple Inc. build 5658)(LLVM build 2336.11.00)

将CUDA_HOST_COMPILER从/ usr / bin / cc更改为/ usr / bin / gcc

答案 1 :(得分:1)

你必须使用GCC 4.5编译CUDA组件,同时使用Clang编译其余的OpenCV,否则你无法使HighGui模块工作。 HighGui只会使用Apple安装的编译器编译,因为它使用Cocoa。如果您不需要HighGui,可以使用GCC编译OpenCV。您可以使用cmake轻松指定正确的编译器。

我发现最简单的方法是使用Homebrew来安装cmake和gcc。

我写了一篇关于如何使其工作的详细要点here,其中还包括使用Homebrew版本启用Python支持。

答案 2 :(得分:0)

在cmake / OpenCVCompilerOptions中禁用警告标志。找到相应的警告并使用“#”取消注释