Linux 64бит: кросс-компиляция для 32-битной цели с использованием cmake - PullRequest
0 голосов
/ 05 марта 2020

Я использую g cc + cmake в Linux 64 битах, и моя цель компиляции составляет Linux 32 бит.

Поэтому я добавил -m32 to my CMAKE_C_FLAGS .

Но тогда cmake завершается ошибкой с сообщением: The C compiler "/usr/bin/gcc" is not able to compile a simple test program.

Конечно, это потому, что 32бит исполняемый файл не может работать на 64-битной арке.

Я заглянул на страницу cmake для кросс-компиляции , но она мне кажется очень сложной.

Итак, мой вопрос: есть ли способ просто собрать 32-битный двоичный файл (exe или lib), используя cmake ?

Для информации, вот что я попытался с помощью переменной окружения:

  1. Добавить `${myflag}` к CMAKE_C_FLAGS
  2. Установить myflag на пустое значение.
  3. Вызвать cmake для создания make-файл (чтобы он успешно проверил компилятор)
  4. Установите myflag на -m32.
  5. Вызовите make (поэтому он будет скомпилирован с опция -m32

Но похоже, что g cc не оценивает переменные среды пользователя.

...