Cmake错误:CXX编译器标识未知,C编译器标识未知

时间:2015-06-13 03:42:08

标签: c++ opencv cmake arm cmake-gui

我尝试使用ARM处理器的交叉编译器在Fedora 21上安装OpenCV。

但是,当我尝试使用Cmake 3.03进行配置时,会出现错误:

Order

我尝试将路径添加到我的bash_profile中,因此它看起来像这样:

*The CXX compiler identification is unknown
The C compiler identification is unknown
Check for working CXX compiler: /opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-g++
Check for working CXX compiler: /opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-g++ -- broken
CMake Error at /usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:54 (message):
  The C++ compiler "/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-g++" is
  not able to compile a simple test program.
  It fails with the following output:
   Change Dir: /opt/opencv/relarm/CMakeFiles/CMakeTmp

  Run Build Command:"/usr/bin/gmake" "cmTryCompileExec1616328985/fast"
  /usr/bin/gmake -f CMakeFiles/cmTryCompileExec1616328985.dir/build.make
  CMakeFiles/cmTryCompileExec1616328985.dir/build
  gmake[1]: Entering directory '/opt/opencv/relarm/CMakeFiles/CMakeTmp'
  /usr/bin/cmake -E cmake_progress_report
  /opt/opencv/relarm/CMakeFiles/CMakeTmp/CMakeFiles 1
  Building CXX object
  CMakeFiles/cmTryCompileExec1616328985.dir/testCXXCompiler.cxx.o
  /opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-g++ -o
  CMakeFiles/cmTryCompileExec1616328985.dir/testCXXCompiler.cxx.o -c
  /opt/opencv/relarm/CMakeFiles/CMakeTmp/testCXXCompiler.cxx

  /opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/bin/as:
  error while loading shared libraries: libz.so.1: cannot open shared object
  file: No such file or directory
  CMakeFiles/cmTryCompileExec1616328985.dir/build.make:57: recipe for target
  'CMakeFiles/cmTryCompileExec1616328985.dir/testCXXCompiler.cxx.o' failed
  gmake[1]: Leaving directory '/opt/opencv/relarm/CMakeFiles/CMakeTmp'
  gmake[1]: ***
  [CMakeFiles/cmTryCompileExec1616328985.dir/testCXXCompiler.cxx.o] Error 1
  Makefile:118: recipe for target 'cmTryCompileExec1616328985/fast' failed
  gmake: *** [cmTryCompileExec1616328985/fast] Error 2


  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:63 (project)
Configuring incomplete, errors occurred!
See also "/opt/opencv/relarm/CMakeFiles/CMakeOutput.log".
See also "/opt/opencv/relarm/CMakeFiles/CMakeError.log".*

我一直在谷歌上搜索数小时,但无法找到任何有用的步骤。任何帮助,将不胜感激。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

从输出看来,cmake能够找到你的交叉编译器,但是输出说它不能编译一个简单的程序。我将首先在C ++中创建Hello World并尝试使用交叉编译器进行编译。如果这不起作用,这是你的第一个问题。如果它确实有效,那么我猜它与某些环境变量有关。在尝试编译简单的C ++程序并与shell环境变量进行比较之前,您可以尝试让cmake打印环境变量,抱歉,我不能比这更有帮助。

更新

所以我下载了FriendlyArm,它提供的二进制文件是32位ELF,所以你需要32位版本的libz。 yum install zlib.i686应解决您的问题。 FriendlyArm工具链适合我,我已经安装了zlib.i686。如果您收到有关缺少共享对象的任何其他错误,请确保安装了32位版本。