В чем состоит проблема: мне надо перебрать некий пакет под архитектуру arm-linux-gnueabi. Как умная Маша собираю себе с помощью crossdev нужный тулчейн: crossdev -S -t arm-linux-gnueabi. Ок. Потом в директории искомого пакета делаю
cmake -S . -B build/ -DCMAKE_TOOLCHAIN_FILE=./platforms/linux/arm-gnueabi.toolchain.cmake
-- The CXX compiler identification is GNU 14.2.1
-- The C compiler identification is GNU 14.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ - broken
CMake Error at /usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:73 (message):
The C++ compiler
"/usr/bin/c++"
is not able to compile a simple test program.
It fails with the following output:
Change Dir: '/home/den/src/opencv/opencv-4.10.0/build/CMakeFiles/CMakeScratch/TryCompile-M78Otx'
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_16743/fast
/usr/bin/gmake -f CMakeFiles/cmTC_16743.dir/build.make CMakeFiles/cmTC_16743.dir/build
gmake[1]: вход в каталог «/home/den/src/opencv/opencv-4.10.0/build/CMakeFiles/CMakeScratch/TryCompile-M78Otx»
Building CXX object CMakeFiles/cmTC_16743.dir/testCXXCompiler.cxx.o
/usr/bin/c++ -mthumb -fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi -fPIE -o CMakeFiles/cmTC_16743.dir/testCXXCompiler.cxx.o -c /home/den/src/opencv/opencv-4.10.0/build/CMakeFiles/CMakeScratch/TryCompile-M78Otx/testCXXCompiler.cxx
c++: ошибка: unrecognized command-line option «-mthumb»
gmake[1]: *** [CMakeFiles/cmTC_16743.dir/build.make:78: CMakeFiles/cmTC_16743.dir/testCXXCompiler.cxx.o] Ошибка 1
gmake[1]: выход из каталога «/home/den/src/opencv/opencv-4.10.0/build/CMakeFiles/CMakeScratch/TryCompile-M78Otx»
gmake: *** [Makefile:127: cmTC_16743/fast] Ошибка 2
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:127 (enable_language)
-- Configuring incomplete, errors occurred!
Смотрю, что за /usr/bin/c++ - так и есть, это основной компилятор системы. То есть ему пофигу, хочу я сборку на arm или не хочу. А мне надо. Как победить сие?
Да, параметр --toolchain тоже не пашет, я проверял.
Всем спасибо.
Решение: Не срабатывает кросскомпиляция в CMake (не находит тулчейны) (комментарий)