我正在开发一个跨越多个C文件的项目。 对于我的第一对练习程序,我只是在main.c
编写了代码并使用gcc main.c -o main
编译。 在我学习的过程中,这对我有用。
现在,我正在研究一个更大的项目。 我想继续自己编译(或者至少手动设置),这样我就可以理解这个过程了。 读了一下后,我决定制作一个Makefile。
注意:我也在使用GTK +,因此我必须查找如何将其添加到compile命令中。
这是经过一些研究后的样子:
main: gcc -Wall -g main.c -o main `pkg-config --cflags --libs gtk+-2.0`
起初,我只是在运行“make”。 然后我遇到一些问题,即使我更改了文件,也会出现错误“main is latest”。
所以我写了一个脚本:
#!/bin/bash rm main make ./main
所以我做了更改,然后运行这个脚本。
这是一个好的/正常的系统吗? 我希望拥有可扩展的系统,因为我的项目将会增长。 我假设我可以保留该脚本,只需将依赖项添加到makefile并更改makefile中的主编译命令。 我对么?
提前致谢。
编辑:
感谢您提供有关如何修复Makefile的反馈。
那么典型的编译过程1)类型make
然后2) ./main
无论项目如何设置或其大小(假设你已经编写了正确的makefile)?
你需要告诉make main
取决于main.c
这样每次你对main.c
进行更改然后运行make
,都会重新生成main
。 要删除main
您可以将名为clean
的假目标视为:
main:main.c gcc -Wall -g main.c -o main `pkg-config --cflags --libs gtk+-2.0` .PHONY: clean clean: rm -f main
现在删除main
你可以做: make clean
如果你得到make: main is up to date.
这意味着你没有修改main.c
,因此不需要重新生成main
。 但是如果你必须强制重新生成main
即使尚未更新依赖项,你也可以使用Sjoerd在其他答案中建议的make
的-B
选项。
例:
a: ac gcc -oa ac
只有当ac
比a
更新时才会构建a
。
我发现命令行make
足以满足我的需求,但是手工编写Makefiles
变得非常繁琐。 随着项目复杂性的增加,您会发现手动管理依赖项会变得越来越烦人。 我建议你做的是学习如何做至少下列之一:
以上就是c/c++开发分享什么是C的高效工作流程? – Makefile + bash脚本相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/550200.html