Кто-то недавно упомянул цель .c.o
в Makefiles для кросс-совместимости, но я не понимаю ее цели. Может ли кто-нибудь уточнить?
Что такое Makefile Target `.c.o` для?
Ответ 1
Это старомодное правило суффикса. Более современный способ сделать это - использовать правило шаблона :
%.o : %.c
Ответ 2
Это законченное правило для перевода файлов .c
, т.е. модулей C, в .o
объектные файлы. Он существует, поэтому вам не нужно самостоятельно писать это правило и параметризуется переменными Make, такими как CC
(используемый компилятор C), CFLAGS
(флаги компилятора) и т.д.
Итак, если вы используете это неявное правило для компиляции модулей C и не переделываете какие-либо переменные Make, тогда человек, создающий ваш код, может указать компилятор и флаги в командной строке без редактирования Makefile.