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

Количество выводимых символов - 5. 1000 - это четыре символа. \n это один символ.

printf не возвращает количество выводимых «элементов», как это делает семейство функций scanf для ввода. Возвращает фактическое количество символов.

17
задан abatishchev 24 May 2009 в 15:56
поделиться

3 ответа

Запуск из make-файла немного необычен. Вы, возможно, пытаетесь продублировать пункт меню «Скомпилировать и запустить», который есть в некоторых IDE? Make не очень хорошо приспособлен для этого.

Все, что происходит в целевых командах, происходит в подпроцессах, которые не подключены напрямую к терминалу, поэтому make получает нажатие вашей клавиши.

Еще одна вещь, которую нужно учитывать. посмотрите: обычно объект-файл на этапе исполняемого файла (связывание) использует другой набор флагов ( LDFLAGS и LIBS ), чем этап компиляции. В этом простом примере вам это сойдет с рук,

15
ответ дан 30 November 2019 в 11:22
поделиться

Вы можете упростить задачу «запустить», поставив ее в зависимость от актуальности вашей программы, а затем просто запустить ее:

run:    ${PROGRAM_NAME}
        ./${PROGRAM} ${ARGS}

Нет особого смысла в запуске make , когда вы уже используете make - по крайней мере, не в этом контексте. Возможно, для рекурсивных операций (в разных каталогах), но см. « Рекурсивное создание считается вредным ».

Кроме того, ваш make-файл обычно должен предоставлять цель « all », и обычно он должен первая и, следовательно, цель по умолчанию.

17
ответ дан 30 November 2019 в 11:22
поделиться

Как сказано в ответе dmckee, make (1) что-то делает, а не для компиляции и запуска.

Конечно, ничто не мешает вам создать оболочку псевдоним make-run , который выполняет предполагаемый " make && ./prog args ".

3
ответ дан 30 November 2019 в 11:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: