我想知道C FLAGS的使用。在make文件中,下面的代码片段是什么意思?
CFLAGS=-00 -g
${PROG}: ${OBJS}
${CC} ${CFLAGS} -o ${PROG} ${OBJS} ${LDFLAGS}
-00定义了什么?
############# Target type (Debug/Release) ##################
############################################################
TARGET_NAME=telematics
CFLAGS=-O0 -g
LinkDebug=-g -Xlinker -Map=$(TARGET_NAME)debug.map
LinkRelease=-O -s -Xlinker -Map=$(TARGET_NAME).map
SUPPRESS_WARNINGS=-Wno-write-strings -Wno-builtin-macro-redefined
COMMON_DEFINES = -DA5N2 -DLINUX_SYSTEM -DCT_2
C___DEFINES =
CPP_DEFINES = -std=c++11 -D_GLIBCXX_USE_C99 -DUSE_IOSTREAM -DOM_NO_TEMPLATES_USAGE -DOM_NO_FRAMEWORK_MEMORY_MANAGER
ConfigurationCPPCompileSwitches= $(SUPPRESS_WARNINGS) $(COMMON_DEFINES) $(CPP_DEFINES) $(INCLUDE_PATH) $(CFLAGS) -c
ConfigurationCCompileSwitches= $(SUPPRESS_WARNINGS) $(COMMON_DEFINES) $(C___DEFINES) $(INCLUDE_PATH) $(CFLAGS) -c
###### Commands & Flags ################
RM=/bin/rm -rf
MD=/bin/mkdir -p
CC=arm-linux-gcc
LIB_CMD=arm-linux-ar
LINK_CMD=$(CC)
LIB_FLAGS=rvu
######### Context macros ##################
我的问题是基本了解-00是否用于静态分析?从make文件我认为它是-00(两个零)
答案 0 :(得分:1)
除了the answer by Basile Starynkevitch之外,我还要添加:
在make文件中,下面的代码段是什么意思?
CFLAGS=-00 -g
上面指定-O0 -g
(使调试信息按预期工作,并分别添加调试信息)到CFLAGS
变量。
${PROG}: ${OBJS}
${CC} ${CFLAGS} -o ${PROG} ${OBJS} ${LDFLAGS}
上面为变量PROG
中命名的文件创建了一个编译配方,其中以变量OBJS
命名的文件作为先决条件。请注意,缩进使用 TAB s,而不是空格。 (此论坛将标签转换为代码段中的空格,这就是为什么如果将上述内容复制并粘贴到编辑器中,则会获得空格。)
make解释的方式如下:首先,必须创建变量OBJS
中列出的所有文件(并且足够新)。然后,需要运行变量CC
中命名的命令,参数为${CFLAGS} -o ${PROG} ${OBJS} ${LDFLAGS}$
。
例如,如果CC=arm-linux-gcc
,PROG=foobar
,OBJS=foobar.o
和LDFLAGS=-lm
生成foobar
,则需要首先确保foobar.o
}存在且足够新,然后运行arm-linux-gcc -o foobar foobar.o -lm
。