如何确保我的代码在 gnu make 中使用 -o3 进行编译?

如何确保我的代码在 gnu make 中使用 -o3 进行编译?

我有一个巨大的 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的是CPPFLAGSCXXFLAGSCFLAGS。但是:

这只会更改项目已更改文件的代码。要确保所有文件都已重新编译,请先执行此操作make clean。但是:

这不保证外部链接文件(例如库)。这些文件通常是不是编译-O3。如果你想确保它们是正确的,你还必须重新编译所有库(不要忘记更改它们的所有 Makefile!)。并且。如果这些文件依赖于其他库(它们可能确实如此),你也必须重新编译它们。

相关内容