CMake: правильный способ выбора компилятора без жесткого кодирования его пути - PullRequest
0 голосов
/ 23 января 2019

Я новичок в CMake и пытаюсь создать CMake для существующего проекта, который должен кросс-компилировать код ARM на нескольких компьютерах с Linux и Windows, поэтому жесткий путь кодирования к компилятору не возможен. До сих пор путь к компилятору был добавлен к каждому пути пользователя, так что вы можете просто вызвать armcc из консоли и выполнить правильную версию компилятора. Я не нашел способ указать компилятор в CMake, который я пытался:

  1. SET(CMAKE_C_COMPILER "armcc") - Возвращает: CMAKE_C_COMPILER: armcc не полный путь и не найден в PATH.
  2. find_program(CMAKE_C_COMPILER NAMES armcc) - всегда возвращается / USR / бен / куб.см

Я уверен, что первое сообщение не соответствует действительности, поскольку путь к armcc указан в переменной PATH. Я использую cmake версии 3.6.2.

1 Ответ

0 голосов
/ 23 января 2019

Это прописано в CMake FAQ :

Метод 1: использование переменных окружения

Для C и C ++, установите CC и CXXпеременные средыЭтот метод не гарантированно работает для всех генераторов.(В частности, если вы пытаетесь установить Xcode GCC_VERSION, этот метод сбивает с толку Xcode.)

Например:

CC=gcc-4.2 cmake -G "Your Generator" path/to/your/source

Метод 2: использовать cmake -D

Установите соответствующую CMAKE_FOO_COMPILER переменную (и) в допустимое имя компилятора или полный путь в командной строке, используя cmake -D.

Например:

cmake -G "Your Generator" -D CMAKE_C_COMPILER=gcc-4.2 path/to/your/source

Метод 3 (избегать): используйте set()

Установите соответствующую переменную (ии) CMAKE_FOO_COMPILER для допустимого имени компилятора или полного пути в файле списка, используя set().Это необходимо сделать до того, как будет установлен какой-либо язык (т. Е. Перед любой командой project() или enable_language()).

Например:

set(CMAKE_C_COMPILER "gcc-4.2")

project("YourProjectName")

Моя догадка, поскольку вы не указалилюбой код и не читал руководство, это то, что вы пытаетесь установить компилятор после установки языка.

Для вашей цели, я бы пошел с рекомендацией CMake и использовал любой метод1 или Способ 2, поскольку вы не хотите жестко задавать путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...