c - Cygwin 中的 Makefile 行为

标签 c unix makefile cygwin

当我尝试在 Windows 7 64 位上的 Cygwin 中使用 Makefile 编译 Keys.c 程序时

它应该按如下方式编译

gcc -g -Wall -ansi -c keys.c 

但我得到以下内容

`cc     keys.c   -o keys`  not `gcc -g -Wall -ansi -c keys.c`

make文件如下

CC = gcc
CFLAGS = -g -Wall -ansi

keys:   keys.c
    $(CC) $(CFLAGS) -c keys.c 

最佳答案

keys.c之前删除-c,这里发生的事情是当你给出

$(CC) $(CFLAGS) -ckeys.c

然后仅创建目标文件keys.o。由于没有编写生成最终目标的规则,因此 makefile 将使用隐式规则来创建目标。

CC = gcc
CFLAGS = -g -Wall -ansi

keys:   keys.c
    $(CC) $(CFLAGS) keys.c 

关于c - Cygwin 中的 Makefile 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20124382/

相关文章:

linux - 如何从 MAKEFILE 中的字符串列表中提取具有特定模式的字符串?

c - makefile 是否可以自动将所有构建对象移动到 dist 目录?

linux - 抑制makefile中命令调用的回声?

c - 如何在 C 程序中将结构映射到节属性?

c - 类型转换为不同的编译器提供不同的结果

C - 如何同步访问连接句柄

linux - 在bash中使用chmod复制所有子目录中的文件

c - 如何输入两个字符串?

regex - 使用 `sed` 查找重复出现的模式

linux - 如果 `pwd -P` 包含包含空格的文件夹名称,bash 脚本将失败