C makefile中是否忽略扩展名?
一个C makefile中是否忽略扩展名?,c,makefile,C,Makefile,一个cube.c存储在文件夹cube中。makefile如下所示 LDFLAGS=-lglut -lGLU all: cube 有人能帮我解决以下问题吗 cube是指cube.c?为什么cube没有扩展名.c 行all:cube后没有命令,并且未使用LDFLAGES。为什么可以这样写呢 cube本身就是可执行文件。您的make可能有内置规则,用于将.c文件编译为.o文件(使用CFLAGS),以及将单个.o文件(使用LDFLAGS)链接到可执行文件。因此,您所要做的就是提供LDFLAGS,并
cube.c
存储在文件夹cube中。makefile如下所示
LDFLAGS=-lglut -lGLU
all: cube
有人能帮我解决以下问题吗
是指cube.c?为什么cube
没有扩展名cube
.c
- 行
后没有命令,并且未使用all:cube
。为什么可以这样写呢LDFLAGES
cube
本身就是可执行文件。您的make
可能有内置规则,用于将.c
文件编译为.o
文件(使用CFLAGS
),以及将单个.o
文件(使用LDFLAGS
)链接到可执行文件。因此,您所要做的就是提供LDFLAGS
,并提供make
至少一个目标,该目标通常称为all
如果你明确写出make
可以推断的规则,你会得到如下结果:
CC=cc
CFLAGS=
LDFLAGS=-lglut -lGLU
all: cube
cube: cube.o
$(CC) $(LDFLAGS) cube cube.o
cube.o: cube.c
$(CC) $(CFLAGS) -c cube.c
GNU Make手册有一节介绍其隐含规则:
cube的意思是cube.c?为什么多维数据集没有扩展名.c
它是生成的可执行文件的名称
在all:cube行之后没有命令,ldflags不是
用过
LDFLAGS
用于隐式规则
- n、 o从n.c自动生成,其配方为
$(CC)$(CPPFLAGS)$(CFLAGS)-c
- 通过运行链接器(通常
通过C编译器调用ld)。使用的精确配方是$(CC)$(LDFLAGS)n.o$(LOADLIBES)$(LDLIBS)
请参阅。在哪里可以找到这些隐式规则?我读了一些教程,但它们都使用显式命令。