Ошибки Cmake: Идентификация компилятора CXX неизвестна, Идентификация компилятора C неизвестна

Я пытаюсь установить OpenCV на Fedora 21 с кросс-компилятором для процессора ARM.

Однако, когда я пытаюсь настроить использование Cmake 3.03, выдает ошибку:

*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 2CMake 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".*

Я попытался добавить Path в мой bash_profile, чтобы он выглядел так:

# .bash_profile

# Get the aliases and functions if [ -f ~/.bashrc ]; then
. ~/.bashrc fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin export PATH=$PATH:/usr/local/bin:/usr/local/sbin:/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-g++:/usr/bin/gmake:/usr/share/bin:/usr/share/sbin

Я часами гуглял, но не смог найти никаких полезных шагов. Любая помощь будет оценена.
Заранее спасибо.

0

Решение

Из вывода видно, что cmake смог найти ваш кросс-компилятор, но, как видно из вывода, он не может скомпилировать простую программу. Я бы начал с создания Hello World на C ++ и попытался скомпилировать его с помощью кросс-компилятора. Если это не сработает, это ваша первая проблема. Если это работает, то я думаю, это связано с некоторыми переменными окружения. Вы можете попытаться заставить cmake напечатать переменные окружения, прежде чем он попытается скомпилировать простую программу на C ++ и сравнить с переменными окружения вашей оболочки, извините, я не могу быть более полезным, чем это.

Обновить:

Поэтому я скачал FriendlyArm и его двоичные файлы — 32-битные ELF, так что вам понадобится 32-битная версия libz. yum install zlib.i686 должен решить вашу проблему. У меня работает набор инструментов FriendlyArm, и у меня уже установлен zlib.i686. Если вы получаете другие ошибки об отсутствующих общих объектах, убедитесь, что у вас установлена ​​32-битная версия.

0

Другие решения