我正在编写一个程序来拼写检查给定的文本。在我的电脑上,我使用这个Makefile来编译程序:
# compiler to use
CC = clang
# flags to pass compiler
CFLAGS = -ggdb3 -O0 Qunused-arguments -std=c99 -Wall -Werror
# name for executable
EXE = speller
# space-separated list of header files
HDRS = dictionary.h
# space-separated list of source files
SRCS = speller.c dictionary.c
# automatically generated list of object files
OBJS = $(SRCS:.c=.o)
# default target
$(EXE): $(OBJS) $(HDRS) Makefile
$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS)
# dependencies
$(OBJS): $(HDRS) Makefile
我想继续在我的Raspberry Pi上编程,但我只安装了gcc。是否可以使这个Makefile适用于gcc?我尝试用以下代码更改编译器:
CC = gcc
但它不起作用。我收到错误消息“无法识别的选项-Qunused-arguments”。
答案 0 :(得分:2)
问题是Clang接受的-Q
选项不是GCC认可的选项。
GCC和Clang是完全独立的编译器,因此人们不应该期望其中一个能够理解其他选项。事实上,Clang确实努力与GCC适度兼容,这在很大程度上使其可以用作GCC的直接替代品。但是,这种兼容性不是,也可能不应该是完整的。
因此,您的解决方案只是在更改CFLAGS
定义的同时更改CC
定义。