这个问题可能很简单,但我找不到确切的答案..
在shell脚本中我有这样一行,
export CFLAGS=" -w -Iinc/ -Isrc/"
我不知道-w
和-I
选项在这里做什么?
我所知道的这一行包括目录inc
和src
任何帮助都会很棒
答案 0 :(得分:2)
这只是设置一个环境变量。我猜它已经习惯了为GCC设置标志。
来自man gcc
:
-I dir
Add the directory dir to the list of directories to be searched for
header files. Directories named by -I are searched before the
standard system include directories. If the directory dir is a
standard system include directory, the option is ignored to ensure
that the default search order for system directories and the
special treatment of system headers are not defeated .
-w Suppress all warnings, including those which GNU CPP issues by
default.
答案 1 :(得分:0)
它们是编译器的参数。如果是gcc,那么:
答案 2 :(得分:0)
CFLAGS
是环境变量的名称。它被设置为值-w -Iinc/ -Isrc/
(初始空间没用,斜线也是如此,顺便说一句。)
这会影响C编译器编译的机制是通过make
程序。默认情况下,make
实用程序使用此规则将C程序编译为目标文件:
.c.o:
$(CC) $(CFLAGS) -c $<
并从环境变量 $(CFLAGS)
中导入生成变量 $CFLAGS
(它们是截然不同的;不要混淆它们)。< / p>
您可以在http://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html
上阅读有关make
变量,制定规则及其默认值的所有内容
对于启蒙试试这个:创建空 Makefile
,将熟悉的helloworld.c
放在同一目录中并输入make helloworld
。怎么了?为什么?如果你明白这一点,你就会成为make
大师的一个巨大飞跃: - )