- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想知道 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(两个零)
最佳答案
您可能正在使用 GCC作为您的 C 编译器(可能作为 cross compiler ),并且您的编译命令由 make
运行。所以请阅读有关 Invoking GCC 的章节. -O0
(即最后一个 0
数字)用于一个optimize option其中:
reduce compilation time and make debugging produce the expected results. This is the default
我强烈建议同时启用所有 warnings所以放
CFLAGS= -Wall -Wextra -O0 -g3
在您的 Makefile
中(如果您想要更多 optimizations ,例如为了基准测试目的,将 -O0
替换为 -O2
或 -O3
). -g3
是 debugging选项(为 DWARF 发出 gdb
debugger 调试信息,您应该使用它)。
请注意 -00
不用于静态分析!您可以考虑使用专门的外部静态 source analysis tools , 比如 Frama-C或 Clang Analyzer .这些工具的运行速度通常比经典编译慢得多(但当然任何编译器都会在内部进行一些静态分析以进行优化)。
另请花时间阅读 documentation of make
(对于您的链接器,可能是 binutils )。我不确定你想保留你的 SUPPRESS_WARNINGS
行(它闻起来很糟糕)。您也可以使用 remake (也是 here )来调试你的 Makefile
。请注意 GNU make
有很多内置规则,您可以在 make -p
中看到这些规则,您应该使用这些规则。顺便说一句,CFLAGS
是其中一些规则已知的(Makefile
中的一个约定 -s 关于为编译 C 文件传递的编译标志)。
请注意,您可能会(很少)添加一些 pragmas或 function attributes在您的源代码中,例如禁用特定警告或强制优化(仅针对极少数函数)。
关于Makefile 中的 Cflags 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49063617/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
我有实体: @Entity @Table(name = "CARDS") public class Card { @ManyToOne @JoinColumn(name = "PERSON_I
我正在尝试计算二维多边形的表面法线。我正在使用 OpenGL wiki 中的 Newell 方法来计算表面法线。 https://www.opengl.org/wiki/Calculating_a_S
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 7 年前。 Improve
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我这里有以下 XML: Visa, Mastercard, , , , 0, Discover, American Express siteonly, Buyer Pay
即将发生的 Google 政策变更迫使我们实现一个对话框,以通知欧盟用户有关 Cookie/设备标识符用于广告和分析的情况。我只想向欧盟用户显示此对话框。我不想使用额外的权限(例如 android.p
本文分享自华为云社区《华为大咖说 | 企业应用AI大模型的“道、法、术” ——道:认知篇》,作者:华为云PaaS服务小智。 本期核心观点 上车:AGI是未来5~10年内,每个人都无法回避的技
我有一个与酒精相关的网站,需要先验证年龄,然后才能让他们进入该网站。我使用 HttpModule 来执行此操作,该模块检查 cookie,如果未设置,我会将它们重定向到验证页面。我验证他们的年龄并存储
在欧盟,我们有一项法律,要求网页请求存储 cookie 的许可。我们大多数人都了解 cookie 并同意它们,但仍然被迫在任何地方明确接受它们。所以我计划编写这个附加组件(ff & chrome),它
以下在 C 和/或 C++ 中是否合法? void fn(); inline void fn() { /*Do something here*/ } 让我担心的是,第一个声明看起来暗示函数将被定义
我是一名优秀的程序员,十分优秀!