Makefile中的特殊宏定义: 可以通过KEY=value在makefile中定义宏。可以使用(KEY)或者{KEY}引用宏 makefile1: main:main.o gcc main.o -o main main.o:main.c gcc -c main.c clean: rm -rf main.o main 可以将上述的文件makefile1修改成makefile2: -Wall :表示允许发出gcc所有有用的报警信息。 -g ...
编译时如果提示如下错误:可能原因为:(1)、Makefile命令缩进没有使用TAB键,(2)、VI编辑器中使用了空格代替TAB键,在/etc/vim/vimrc配置文件最后加上:set noexpandtab,修改完后随便改一个.C文件(加几个空格)再次编译试试。 编译成功如下 :会根据Makefile指示,在该目录下生成各种.O文件,及可执行文件,如果要清除...
大多数的make都支持“makefile”和“Makefile”这两种默认文件名,你可以使用别的文件名来书写Makefile,比如:“Make.Linux”,“Make.Solaris”,“Make.AIX”等,如果要指定特定的Makefile,你可以使用make的“-f”和“–file”参数,如:make -f Make.Linux或make --file Make.AIX。
上述Makefile 语句中,main.o input.o 和 calcue.o 这三个依赖文件,我们输入了两遍,我们 这个Makefile 比较小,如果 Makefile 复杂的时候这种重复输入的工作就会非常费时间,而且非 常容易输错,为了解决这个问题,Makefile 加入了变量支持。不像 C 语言中的变量有 int、char 等各种类型, Makefile 中的变量都是...
所以make会进一步查找以这三个条件为目标的规则,这些目标文件也没有生成,也需要更新,所以执行相应的命令(gcc -c main.c、gcc -c stack.c和gcc -c maze.c,通过隐含规则)更新它们。 最后执行gcc main.o stack.o maze.o -o main更新main。 Makefile的依赖关系图 ...
gcc -Wall -O -g-c yul.c -o yul.o clean: rm *.o test 注释:—Wall: 表示允许发出gcc所有有用的报警信息。—c: 只是编译不连接,生成目标文件" .o "—o file: 表示把输出文件输出到file里 我们可以把这个内容保存在文件为“Makefile”或“makefile”的文件中,然后在该目录下直接输入命令“make”就...
1. Makefile 示例 代码语言:javascript 复制 # Makefile 示例 # 编译器CC=gcc # 编译选项CFLAGS=-Wall-g # 目标文件TARGET=myprogram # 源文件SRCS=main.c func1.c func2.c # 中间文件OBJS=$(SRCS:.c=.o)# 默认目标all:$(TARGET)# 目标文件生成规则$(TARGET):$(OBJS)$(CC)$(CFLAGS)-o $@ $...
Linux C语言 Makefile 的使用 函数 创建三个.c文件 终端输入: 创建目录:mkdir Makefile 进入目录:cd Makefile 使用gedit:gedit 第一个文件:main.c #include <stdio.h> #include "input.h" #include "calcu.h" int main(int argc, char *argv[])...
2. Makefile 解释 CC:编译器的变量,这里使用gcc。 CFLAGS:编译选项的变量,这里设置了-Wall(显示所有警告)和-g(生成调试信息)。 TARGET:目标文件的变量,这里定义了最终生成的可执行文件的名字。 SRCS:源文件的变量,这里列出了所有的源文件。 OBJS:中间文件的变量,这里将源文件的后缀由.c替换为.o。
make是一个自动化构建工具,广泛应用于C/C++项目中,但也可以用于其他编程语言。它的主要功能是根据Makefile中的规则自动执行一系列命令,从而生成目标文件。make通过比较目标文件和依赖文件的时间戳来决定是否需要重新构建某个目标,从而避免了不必要的编译,提高了构建效率。