我的makefile存在一些问题。 我有以下源代码:main.c cache.c cache.h 当我跑步时,这就是我得到的......
make
gcc −ansi −pedantic −Wall −m32 -c main.c
clang: error: no such file or directory: '−ansi'
clang: error: no such file or directory: '−pedantic'
clang: error: no such file or directory: '−Wall'
clang: error: no such file or directory: '−m32'
make: *** [main.o] Error 1
这是我的makefile:
COMPILER = gcc
CCFLAGS = −ansi −pedantic −Wall −m32
all: c-sim
c-sim: main.o cache.o
$(COMPILER) $(CCFLAGS) -o c-sim main.o cache.o
main.o: main.c
$(COMPILER) $(CCFLAGS) -c main.c
cache.o: cache.c
$(COMPILER) $(CCFLAGS) -c cache.c
clean:
rm -f c-sim
rm -f *.o
这里有什么问题?
答案 0 :(得分:4)
不要用文字处理器编写脚本。
问题是选项以简单的 - 开头。但是,您已设法输入印刷短划线。 (将它们与-c
中的 - 进行比较。你的 - 稍长一些。仔细看看。)
这可能是因为您错误地输入了--
而不是-
。 Gcc(和clang)允许但不要求用两个短划线指定长选项(-pedantic和-ansi);这是在其他程序中编写长选项的常用方法。许多文字处理器"纠正"双击破为短划线。
如果删除en-dashes并用简单的短划线替换它们,一切都会好的。
答案 1 :(得分:-2)
问题的原因是你没有使用GCC编译器而是使用Clang编译器。在Clang标志中提供:
/W0 /Wall
但GCC标志以
的形式提供-Wall -g
因此你根据Clang改变了旗帜。