Qt学习笔记

qmake: 自动生成Makefile、Microsoft Visual Studio 专案文件 和 xcode 专案文件。

===========================

make命令: $ make -f Makefile.debug

根据makefile文件对整个工程自动重新编译

===========================

makefile文件解析Makefile: 规定工程中源文件的编译顺序。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。

 

例如,一个名为prog的程序由三个C源文件filea.c、fileb.c和filec .c以及库文件LS编译生成,这三个文件还分别包含自己的头文件a.h 、b.h和c.h。通常情况下,C编译器将会输出三个目标文件filea.o、fileb.o和filec.o。假设filea.c和fileb.c都要声明用到一个名为defs的文件,但filec.c不用。即在filea.c和fileb.c里都有这样的声明:
#include "defs"
那么下面的文档就描述了这些文件之间的相互联系:
------------------------------
#It is a example for describing makefile
prog : filea.o fileb.o filec.o
cc filea.o fileb.o filec.o -LS -o prog
filea.o : filea.c a.h defs
cc -c filea.c
fileb.o : fileb.c b.h defs
cc -c fileb.c
filec.o : filec.c c.h
cc -c filec.c
------------------------------
这个描述文档就是一个简单的makefile文件。
从上面的例子注意到,第一个字符为 # 的行为注释行。第一个非注释行指定prog由三个目标文件filea.o、fileb.o和filec.o链接生成。第三行描述了如何从prog所依赖的文件建立可执行文件。接下来的4、6行分别指定三个目标文件,以及它们所依赖的.c和.h文件以及defs文件。而5、7、9行则指定了如何从目标所依赖的文件建立目标。
当filea.c或a.h文件在编译之后又被修改,则 make 工具可自动重新编译filea.o,如果在前后两次编译之间,filea.c 和a.h 均没有被修改,而且filea.o还存在的话,就没有必要重新编译。这种依赖关系在多源文件的程序编译中尤其重要。通过这种依赖关系的定义,make 工具可避免许多不必要的编译工作。当然,利用Shell脚本也可以达到自动编译的效果,但是,Shell 脚本将全部编译任何源文件,包括哪些不必要重新编译的源文件,而 make 工具则可根据目标上一次编译的时间和目标所依赖的源文件的更新时间而自动判断应当编译哪个源文件。
Makefile文件准备好之后,接着在Makefile文件所在的目录下敲入make这个命令就可以了,根据Makefile文件,以告诉make命令需要怎么样的去编译和链接目标程序。

==============================

Debug与Release的区别:

不同的编译模式会生成不同的目录,默认有Debug和Release模式,Debug模式生成的dll有编译符号,对于调试有很大帮助,而Release模式出来的dll效率最高,因为代码进行过优化

 

 ==============================

version control:版本控制

 

 ==============================

Makefile:2:*** missing separator. Stop.

在make命令后出现这种错误提示,是提示第2行没有分隔符。
例如:
1 target:prerequisites
2 command
……
改为:
1 target:prerequisites
2     command
……
就可以了。
在Makefile文件中,命令必须以【tab】键开始。

 

 

在编写makefile后,make项目时提示错误“Makefile:3: *** missing separator. Stop.”

偶然发现这个错误是有makefile中的tab的长度导致的,在makefile中的命令需要以tab键开始,

在.vimrc文件中发现没有设置tab键的默认长度,然后在.vimrc中添加如下配置后,

set tabstop=4

便可以执行makefile了, 但是后来发现不管再次把tabstop设置成8还是注释掉这个配置,makefile都可以执行,很奇怪,不知道为什么?

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值