Неправильные ar и strip при cmake кросс-компиляции с ccache

Я кросс-компилировал один проект ccache:

cmake -G"Unix Makefiles" \
      -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_TOOLCHAIN_FILE=mips64el-toolchain.cmake

Ниже приведен файл mips64el-toolchain.cmake:

SET (CMAKE_SYSTEM_NAME Linux)
SET (CMAKE_SYSTEM_PROCESSOR mips64el)

SET (CMAKE_C_COMPILER ccache mips64el-n64-linux-gnu-gcc)
SET (CMAKE_CXX_COMPILER ccache mips64el-n64-linux-gnu-g++)

# here is the target environment located
SET (CMAKE_FIND_ROOT_PATH 
     $ENV{HOME}/x-tools/mips64el-n64-linux-gnu/mips64el-n64-linux-gnu/sysroot)

# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search
# programs in the host environment
SET (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

Но я нашел неправильные значения в CMakeCache.txt:

CMAKE_AR:FILEPATH=/usr/bin/ar
CMAKE_STRIP:FILEPATH=/usr/bin/strip

ar и strip не являются кросс-компиляторами.

Как правильно их установить?

Несколько недель назад я обнаружил, что это ошибка cmake, и исправил

  • Модули /CMakeDetermineCCompiler.cmake
  • Модули /CMakeDetermineCXXCompiler.cmake

Для деталей, пожалуйста, смотрите также

https://launchpad.net/~likemartinma/+archive/devel

1 ответ

Попробуйте установить CMAKE_AR для настройки ар и CMAKE_STRIP для полосы в CMAKE_TOOLCHAIN_FILE,

я использую CMAKE_AR в одном из моих проектов, чтобы установить правильное ar как платформа имела несколько ar от разных поставщиков.

Другие вопросы по тегам