Ответ 1
Если вы пытаетесь построить MyTarget
и оставить сгенерированную сборку, вы можете заменить -S
на -save-temps
, а затем сделать make MyTarget
Я пытаюсь передать -S
в GCC для одного из моих исполняемых файлов. Я попробовал это:
set_target_properties(MyTarget PROPERTIES COMPILE_FLAGS "-S")
но я получаю "формат файла не распознан; рассматривается как скрипт компоновщика"
(Он прекрасно строится без этой линии)
Что-то не так с прохождением -S
как это? Или есть другой способ заставить CMake выводить файлы сборки .s?
Если вы пытаетесь построить MyTarget
и оставить сгенерированную сборку, вы можете заменить -S
на -save-temps
, а затем сделать make MyTarget
У CMake есть цели, встроенные для выхода ассемблера и препроцессора. Для файла с именем src.cpp
CMake генерирует целевой src.s
для выхода ассемблера и src.i
для вывода препроцессора. Он генерирует выходные данные ассемблера/препроцессора для каждой цели отдельно, если флаги компиляции различны. Используя генератор make для вашего проекта CMake, вы можете получить выходные данные ассемблера и препроцессора следующим образом:
make src.s # assembler output
make src.i # preprocessor output