我有一个巨大的 Makefile,正在处理并试图精简它。目前,它被设计用于构建几个不同的程序,其中包含大量我永远不会使用的选项。我希望首先确保代码以正确的方式构建,然后删除我不需要的部分。
首先,我想确保我的代码使用 -o3 进行编译(大量优化),但我不确定是否如此。我看到 Makefile 中有一段内容:
ifeq ($(findstring $(CFLAGS),-O),)
CFLAGS_COMMON += -O3
# only add -O3 if no -O flag is in $(CFLAGS)
endif
这提供了一些安慰...但是难道不需要有一个 -O 标志来编译它,否定 if 语句吗?
以下是整个 Makefile: http://textuploader.com/bj98
答案1
LDFLAGS ?=
CFLAGS ?=
CXXFLAGS ?=
CPPFLAGS ?=
LIBS ?=
RADIANT_ABOUTMSG ?= Custom build
我要补充-O3
的是CPPFLAGS
,CXXFLAGS
和CFLAGS
。但是:
这只会更改项目已更改文件的代码。要确保所有文件都已重新编译,请先执行此操作make clean
。但是:
这不保证外部链接文件(例如库)。这些文件通常是不是编译-O3
。如果你想确保它们是正确的,你还必须重新编译所有库(不要忘记更改它们的所有 Makefile!)。并且。如果这些文件依赖于其他库(它们可能确实如此),你也必须重新编译它们。