我的makefile出错,标记未得到适当处理。可能是什么原因?

时间:2014-12-13 18:43:22

标签: c makefile

我的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

这里有什么问题?

2 个答案:

答案 0 :(得分:4)

不要用文字处理器编写脚本。

问题是选项以简单的 - 开头。但是,您已设法输入印刷短划线。 (将它们与-c中的 - 进行比较。你的 - 稍长一些。仔细看看。)

这可能是因为您错误地输入了--而不是-。 Gcc(和clang)允许但不要求用两个短划线指定长选项(-pedantic和-ansi);这是在其他程序中编写长选项的常用方法。许多文字处理器"纠正"双击破为短划线。

如果删除en-dashes并用简单的短划线替换它们,一切都会好的。

答案 1 :(得分:-2)

问题的原因是你没有使用GCC编译器而是使用Clang编译器。在Clang标志中提供:

/W0 /Wall

但GCC标志以

的形式提供
-Wall -g

因此你根据Clang改变了旗帜。