0

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

之后

clang: error: unsupported option '-dumpspecs' 

在制作中,我已将条目 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
4

3 回答 3

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

于 2013-06-06T23:05:39.737 回答
1

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

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

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

于 2013-06-15T03:06:26.520 回答
0

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

于 2013-06-07T14:09:56.943 回答