本文目录一览

1,CFLAGS Wall O g

-Wall 是打开警告开关,-O代表默认优化,可选:-O0不优化,-O1低级优化,-O2中级优化,-O3高级优化,-Os代码空间优化。-g是生成调试信息,生成的可执行文件具有和源代码关联的可调试的信息。

CFLAGS  Wall O g

2,makefile的选项CFLAGSCPPFLAGSLDFLAGS和LIBS的区别

都是不同的编译选项CFLAGS 是调用gcc进行编译时,加入的编译选项。CPPFLAGS 是调用g++时,加入的编译选项。LDFLAGS 是调用ld, 进行链接的时候 使用的选项。LIBS和以上三个有些区别, 是编译时依赖的库的列表

makefile的选项CFLAGSCPPFLAGSLDFLAGS和LIBS的区别

3,gmake的makefile里有这样两句设置编译参数的语句 CFLAGS O2

问号可能是显示问题,大概是 tab 键的 意思。有些脚本 用 tab 做空白分隔符。就是 CFLAGS = /O2 /GF nmake 你可以参照 VC++ 6.0 程序里 的 *.mak 文件内容。不那么容易 “讲一讲”。简单起见,你直接用 编译开关 选项 /O2 /GF 就是了。 /O2 是优化2,/GF 大概是enable read-only string pooling。
你说呢...

gmake的makefile里有这样两句设置编译参数的语句 CFLAGS  O2

4,请教MK文件语法LOCALCFLAGS的用法

LOCAL_CFLAGS-D,增加全局宏定义。LOCAL_CFLAGS := -DUSE_JSC相当于在所有源文件中增加一个#define USE_JSCLOCAL_CFLAGS := -DUSE_COPY_BIT=1相当于在所有源文件中增加一个#define USE_COPY_BIT 1
-werror是编译警告也作为错误信息-d__stdc_constant_macros相当于#define __stdc_constant_macros

5,CFLAGS变量

:= 就是简单的赋值, 比如foo := $(bar)将bar的值赋给foo?= 是条件赋值, 比如foo ?= $(bar)只有当foo变量还没有被定义的时候,才会将bar的值赋给foo。 注意,如果foo已经被定义过,但是是空值了话,?=不会给他赋值。比方说你的makefile是foo = hellofoo ?= new则最终foo的值是hello如果你的makefile是foo =foo ?= newfoo的值是空 请参考
shell里默认肯定是没定义这个环境变量的, 但如果你export导出了,那么makefile会优先参考你的。

6,谁给我讲讲CFLAGS的相关知识啊Linux Makefile

CFLAGS主要是指makefile中的隐式规则里会用到的常见预定义变量,是C编译器的选项,相关的你可以百度一些,我顺便再给你一张插图
其实CFLAGS 你可以看成是gcc(或gcc同类编译器)编译命令的一部分。通常情况下我们编译源代码的时候因为需求不同等原因会加上各种各样选项和参数,而通过修改CFLAGS这一变量来达到在它作用域范围内修改编译命令的目的。针对你所描述的问题,CFLAGS="-DDEBUG $其实$另外还要注意在这些语句里面,等号左边的变量名不带$,而等号右边的变量名则要带$。
这是配置编译器设置,就是说让编译器知道怎么样去编译你的源代码,CFLAGS不是makefile的关键字,他是一个变量,这个名称可以随便起,你可以起CFLAGSABCDEFG,只要你在编译时,用$引用这个变量就可以了,CFLAGS 没有什么具体含义.

文章TAG:error  cflags  CFLAGS  Wall  O  g  
下一篇