如何在linux中为c程序编写makefile
我已经为linux中的双链表编写了一个c程序。该程序名为program2.c。 我使用“cc program2.c-oout2”编译了它。 它编译并执行得很好 甚至还尝试编写一个makefile如何在linux中为c程序编写makefile,c,linux,makefile,C,Linux,Makefile,我已经为linux中的双链表编写了一个c程序。该程序名为program2.c。 我使用“cc program2.c-oout2”编译了它。 它编译并执行得很好 甚至还尝试编写一个makefile all:doublelinkedlist doublelinkedlist:program2.c gcc -Wall -Werror -O2 -o $@ $< clean : \rm -fr doublelinkedlist all:doublelinkedl
all:doublelinkedlist
doublelinkedlist:program2.c
gcc -Wall -Werror -O2 -o $@ $<
clean :
\rm -fr doublelinkedlist
all:doublelinkedlist
doublelinkedlist:program2.c
gcc-Wall-Werror-O2-o$@$<
清洁:
\rm-fr双链接列表
当我做的时候,它给了我错误。
有人能帮我写一个makefile吗 使用makefile时,您还开始使用
-Wall-Werror
标志。这是一件非常好的事情。
现在,编译器会在程序中查找更多可疑的内容,如果发现任何内容,就会拒绝编译。这对捕捉bug有很大帮助
但是,这些警告意味着您的程序无法编译,您需要通过更改代码来修复这些警告,以便编译器确保一切正常(只要编译器能够检查,当然代码仍然可能包含bug)
常见的问题是混合不同的类型,不注意
const
关键字。但是要获得有关特定警告的帮助,您需要显示警告和代码。或者更好-在StackOverflow中搜索它们中的每一个,我相信您会找到很好的答案。显示您得到的错误。我使用编写的makefile,用一个选项卡替换gcc和\rm行之前的空格。它对我很有效。哦,当-f
足够时,不要使用-fr
。为什么不按照惯例,让从单个源文件构建的程序与源文件的基本名称相同?因此,要么程序是从program2.c
构建的program2
,要么程序是从doublelinkedlist.c
构建的doublelinkedlist
。如果这样做,就不需要makefile
make
知道如何在没有任何额外信息的情况下构建程序。