编译命令 make命令的语法 make [ -f file ] [targets][ -f file ]:指定makefile文件。make 默认在工作目录中寻找名为 GNUmakefile、makefile、Makefile 的文件作为 makefile 输入文件f可以指定以上名字以外的文件作为 makefile 输入文件 [targets ]:若使用 make 命令时没有指定目标
1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。 2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写Makefile,这是由make所支持的。 3、变量的定义。在Makefile中我们要定义一系列...
那么这就是使用 makefile 的第一个原因,通过 makefile 可以制定好相应的编译与连接规则,先编译哪个文件后编译哪个文件、哪个需要编译哪个不需要编译、如何链接、如何生成、要生成什么文件等等全部都在 makefile 文件中提前制定好,在编译的时候只需要使用 make 工具,执行 make 命令就可以了。 另外,使用 makefile 的第...
1).预处理: 引入头文件,解析并展开宏定义 2).编译: 简单一点就是把源代码转化为汇编码(机器指令) 3).链接: 组装各个子模块和相应的库,并生成最终的可执行程序 评注: 参数-E用于生成预处理后的c/c++文件, 参数-c用于生成编译后的二进制文件,参数-o则只是用于制定某个阶段的产出物名称 Makefile的基础规则 ...
Makefile中使用隐含规则来编译程序 本示例演示一个程序的生成过程,使用的程序文件为第4章中的文件。Makefile文件和程序文件在一个文件夹中。Makefile文件如下所示: CC := gcc HEAD := getarg.h SRC := getarg.c writeinfo.o main.c OBJS := getarg.o writeinfo.o main.o ...
Makefile的C++的一个模板,可用于根据不同源文件,生成多个可执行文件 。 CC = g++ DIR_INC = ./...
1)make: *** 没有规则可以创建“accessdevice”需要的目标“testt.o”。 停止。 原因:没有一个对应testt.o的源码文件testt.cpp, 原来是makefile文件中编译的源码文件名称多了一个t 2)宏定义 -D __USE_GNU 3)引入头文件 -I /opt/ 4)引入库文件路径 -L /opt ...
$(MAKE) $(CPPDEF) #$(OBJS):%.o :%.c 先用$(OBJS)中的一项,比如foo.o: %.o : %.c 含义为:试着用%.o匹配foo.o。如果成功%就等于foo。如果不成功, # Make就会警告,然后。给foo.o添加依赖文件foo.c(用foo替换了%.c里的%) # 也可以不要下面的这个生成规则,因为下面的 include $(DEF) 就...
的技术完成任务 这样 当用户使用它们时就不必详细指定编译的具体细节 而只需把目标文件列出即可 上面的例子OBJS kang oyul oCC gccCFLAGS Wall gsunqOBJS CC wwwembedu orgMakefile规则 常见隐式规则目录 C编译 c变为 CPPFLAGSCFLAGS 编译cc或 C变为 CPPFLAGSCXXFLAGS Pascal编译 p变为 PFLAGSFortran编译 r变为...