CMake и кросскомпиляция
От: пффф  
Дата: 21.05.24 18:53
Оценка:
Привет!

А как на CMake делается кросскомпиляция?

Есть arm-none-eabi-gcc, запускаю VSCode, он предлагает выбрать тулчейн для проекта CMake, который находит в текущей папке, выбираешь среди прочих этот армовский, и дальше облом — CMake пытается тестовые программы собирать и запускать, чтобы проверить фичи компилятора, и тут ему облом.

Кто-нибудь собирает плюсовые проекты кроссплатформенно, и особенно под виндой?

ЗЫ Теоретически тема больше для форума "Средства разработки", но тут плюсовиков таки больше, а симейком в основном плюсы да сишечку собирают. Но если неудачно зашел, перенесите
Re: CMake и кросскомпиляция
От: andrey.desman  
Дата: 21.05.24 19:15
Оценка: +1
Здравствуйте, пффф, Вы писали:

П>Кто-нибудь собирает плюсовые проекты кроссплатформенно, и особенно под виндой?


Чудес нет, все сводится к тому, чтобы руками прозапускать эти проверки на таргете и руками же прописать результаты. Частично это автоматизировано, в доках описано:
https://cmake.org/cmake/help/book/mastering-cmake/chapter/Cross%20Compiling%20With%20CMake.html#using-compile-checks
Re[2]: CMake и кросскомпиляция
От: пффф  
Дата: 21.05.24 19:19
Оценка:
Здравствуйте, andrey.desman, Вы писали:

П>>Кто-нибудь собирает плюсовые проекты кроссплатформенно, и особенно под виндой?


AD>Чудес нет, все сводится к тому, чтобы руками прозапускать эти проверки на таргете и руками же прописать результаты. Частично это автоматизировано, в доках описано:

AD>https://cmake.org/cmake/help/book/mastering-cmake/chapter/Cross%20Compiling%20With%20CMake.html#using-compile-checks

Спасибо, завтра на работе почитаю.

Руками на таргете как-то не очень удобно запускать, таргет — это микроконтроллер
Re: CMake и кросскомпиляция
От: Skorodum Россия  
Дата: 30.05.24 09:03
Оценка:
Здравствуйте, пффф, Вы писали:

П>Привет!


П>А как на CMake делается кросскомпиляция?

Через toolchain файлы где прописаны компиляторы и их параметры.

П>Есть arm-none-eabi-gcc, запускаю VSCode, он предлагает выбрать тулчейн для проекта CMake, который находит в текущей папке, выбираешь среди прочих этот армовский, и дальше облом — CMake пытается тестовые программы собирать и запускать, чтобы проверить фичи компилятора, и тут ему облом.

CMAKE_TRY_COMPILE_TARGET_TYPE

set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")


П>Кто-нибудь собирает плюсовые проекты кроссплатформенно, и особенно под виндой?

Да.

В старых версиях (до 3.6) можно еще так:

if(CMAKE_SYSTEM_NAME STREQUAL "Windows" AND ...)
set(CMAKE_C_COMPILER_WORKS 1)
set(CMAKE_C_COMPILER_FORCED 1)
set(CMAKE_CXX_COMPILER_WORKS 1)
set(CMAKE_CXX_COMPILER_FORCED 1)
endif()

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.