Проблема в том, что hello.bin не очищается при запуске. Чтобы это работало, добавьте:

ел бы сделать что-то вродеadd_custom_commandс именем выходного файла в качестве цели в сгенерированном make-файле. Есть ли элегантный способ сделать это?

Все примеры, которые я видел (такие какFAQ по CMake: латекс) использоватьadd_custom_command рассказать, как сгенерировать нужный выходной файл, а затемadd_custom_target создать цель. Например.:

add_executable (hello hello.c)
add_custom_command(OUTPUT hello.bin
                   COMMAND objcopy --output-format=binary hello hello.bin
                   DEPENDS hello
                   COMMENT "objcopying hello to hello.bin")
add_custom_target(bin ALL DEPENDS hello.bin)

Тем не менее, имя цели в сгенерированном make-файлеbin скорее, чемhello.bin, Есть ли способ сделатьhello.bin сама цель в сгенерированном make-файле?

Некоторые решения, которые я пробовал, не работают:

Меняется на:add_custom_target(hello.bin ALL DEPENDS hello.bin) приводит к циклической зависимости в make-файле.

Ответы на вопрос(1)

Ваш ответ на вопрос