“C ++编译器”/ usr / bin / c ++“无法编译简单的测试程序。”尝试安装OpenCV时

时间:2014-09-22 14:01:53

标签: c++ xcode macos opencv

我正在尝试按照此link

在我的Mac上安装OpenCV

但是,当我在终端上键入cmake -G "Unix Makefiles" ..时,会打印出此错误。

  

- CXX编译器标识未知    - C编译器标识未知    - 检查CXX编译器是否正常工作:/ usr / bin / c ++    - 检查工作CXX编译器:/ usr / bin / c ++ - 在/opt/local/share/cmake-3.0/Modules/CMakeTestCXXCompiler.cmake:54中损坏的CMake错误   (消息):C ++编译器“/ usr / bin / c ++”无法编译   简单的测试程序。

     

它失败并显示以下输出:

     

更改目录:/ Users / kwmaeng / Desktop / opencv / build / CMakeFiles / CMakeTmp

     

运行Build命令:“/ usr / bin / make”“cmTryCompileExec653545098 / fast”

     

make:错误:无法找到实用程序“make”,而不是开发人员工具或   在PATH

     

CMake无法正确生成此项目。呼叫   Stack(最近一次调用):CMakeLists.txt:56(项目)

     

- 配置不完整,发生错误!另请参阅“/Users/kwmaeng/Desktop/opencv/build/CMakeFiles/CMakeOutput.log”。看到   还有“/Users/kwmaeng/Desktop/opencv/build/CMakeFiles/CMakeError.log”。

所以我检查了CMakeError.log,这是内容

  

编译CXX编译器标识源文件   “CMakeCXXCompilerId.cpp”失败了。编译器:/ usr / bin / c ++构建标志:   Id标志:

     

输出为:72 xcodebuild:错误:SDK   “/ Volumes / MAC / dev / adt-bundle-mac-x86_64-20131030 / sdk”不能   位于。 c ++:错误:无法找到实用程序“clang ++”,而不是开发人员   工具或PATH ......(等等)

奇怪的是,/Volumes/MAC/dev/adt-bundle-mac-x86_64-20131030/sdk是安装我的Android SDK的地方,现在已被删除,因此不再有这样的文件夹了。是否发生错误是因为cmake指的是不再存在的无效路径?为什么cmake首先引用android sdk的位置?对opencv来说是否重要?

我用谷歌搜索了几个小时,但没有找到太多的帮助。如果您有任何想法,请帮助我。

提前致谢。

6 个答案:

答案 0 :(得分:3)

感谢大家的帮助,我能够解决我的问题。

对于将来可能遇到同样问题的其他人,这就是我所做的:

这是因为我的$PATH搞砸了(我认为这是在我尝试将Android SDK添加到$PATH时发生的)

我清除了.bash_profile并添加了C ++并制作了/opt/local/bin/opt/local/sbin

像这样

export PATH=$PATH:/opt/local/bin:/opt/local/sbin:/usr/bin/c++:/usr/bin/make

它就像魅力一样。

答案 1 :(得分:2)

我遇到了同样的问题 - 有效的方法是删除命令行工具:

rm -rf /Library/Developer/CommandLineTools

然后重新安装命令行工具:

xcode-select --install

谁知道那个剧本正在做什么......我没有时间去调查所以你去......

答案 2 :(得分:1)

我找到了另一个解决方案:将set(CMAKE_C_COMPILER gcc)放在CMakeLists.txt的最顶端。作为参考,我在安装CLion更新后立即收到此错误。

这是我的最终CMakeLists.txt

set(CMAKE_C_COMPILER gcc)
cmake_minimum_required(VERSION 3.6)
project(...)

set(CMAKE_CXX_STANDARD 11)

set(SOURCE_FILES XXX.cpp)
add_executable(... ${SOURCE_FILES})

答案 3 :(得分:0)

我也遇到过这个问题,我已经通过设置正确的CXXFLAGS和CPPFLAGS来修复它。我想你也应该检查一下。

一个简单的解决方案是:

CPPFLAGS := $(CPPFLAGS) $(CFLAGS) CXXFLAGS := $(CXXFLAGS) $(CFLAGS)

答案 4 :(得分:0)

对我来说,我的第一个问题是我没有Xcode命令行工具。所以我得到了那些(xcode-select --install在终端中),我仍然遇到了问题。解决方案?关闭终端窗口并创建一个新窗口。那么,瞧!

答案 5 :(得分:-1)

我也遇到了这个问题并且已经解决了。

代码是:

NSMutableArray *names = [NSMutableArray new];

NSArray *statuses = [json objectForKey:@"status"];

for(NSDictionary *status in statuses){
   NSString *bussiness_category=[status valueForKey:@"business_category_name"];

   for(NSDictionary *details in [status objectForKey:@"business_details"]){
         NSString *name=[details valueForKey:@"name"];
         [names addObject:name];
   }

}