GNU Makefile,C 编程
我当前的 makefile 看起来像这样
all: hello
hello: hello.o
clang -o hello hello.o
hello.o: hello.c
clang -Wall -std=c99 -c -o hello.o hello.c -lpthread
clean:
rm -f *.o *exe hello
我如何修改它以使用以下内容进行编译:
clang -std=gnu99 -Wall -o hello hello.c -lpthread
my current makefile looks likes this
all: hello
hello: hello.o
clang -o hello hello.o
hello.o: hello.c
clang -Wall -std=c99 -c -o hello.o hello.c -lpthread
clean:
rm -f *.o *exe hello
How can I modify it to compile with the following:
clang -std=gnu99 -Wall -o hello hello.c -lpthread
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
现在使用
hello 和 hello.o 的两条规则来代替。
然而,当您的程序变得更大时,将编译与目标文件和链接分开在某种程度上可能比一次性编译和链接所有内容更快。通过分离编译和链接编译单元,未修改的单元不需要每次都重新编译。
Use
instead of the two rules you have for hello and hello.o now.
When your program gets bigger, however, the separation of compilation to object files and linking may at some point be faster than compiling and linking everything in one go. With separated compilation and linking compilation units that are unmodified do not need to be recompiled every time.
试试这个 - 通常最好的编译是几个步骤。
Try this - usually best to do the compiling is a few steps.
您的修改只需要更改一行;但相反,您应该使用一些变量来使其更清晰:
Your modification requires just changing a single line; but instead, you should use some variables to make it cleaner: