在哪里可以为NetBeans中的C ++设置-O optimization compiler选项?

时间:2015-11-12 19:12:12

标签: c++ netbeans

当我在NetBeans中构建 Release C ++项目时,它会自动使用-O2选项对其进行配置。

我没有在编译器选项中的任何地方看到我可以覆盖此值。我知道它已设置为-O2,因为我可以在Build窗口中看到它使用的cmdlines:g++ -O2 ...

如果我将-O1添加到"其他选项"在编译器设置中,它不会尊重它,因为cmdline现在变为g++ -O1 -O2 ...,因此-O2取代了我自己的设置。

那么,我可以在IDE中设置-O优化级别编译设置吗?

如果有任何不同,我在Linux上使用GNU编译工具。

enter image description here

2 个答案:

答案 0 :(得分:3)

我终于通过探索更多来找到了解决方案。在OP的对话框中,有一个选项,'开发模式'目前设置为'发布'。那里有许多选项,每个选项对应不同的优化级别和/或调试输出编译标志:

No Flags                     -c
Debug                        -c -g
Performance Debug            -c -g -O
Test Coverage                -g -c
Diagnosable Release          -c -g -O2 
Release                      -c -O2 
Performance Release          -c -O3

虽然似乎没有--O1的选项,但这基本上是您在NetBeans中选择不同优化级别的预期方式。

答案 1 :(得分:1)

请查看nbproject/Makefile-Release.mk文件。

nekto@ubuntu:~/host/ex/dt-netbeans-samples-cpp-Welcome$ grep -r O2 *
nbproject/Makefile-Release.mk:  $(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o     ${OBJECTDIR}/welcome.o welcome.cc

看起来-O2配置中的Release选项存在是默认的且不可更改的,但是您始终可以创建自己的构建配置(并且您按照我的意愿执行)。

每个构建配置都有自己的nbproject/Makefile-<configuration name>.mk文件,其中包含以下行:

# CC Compiler Flags
CCFLAGS=-O1
CXXFLAGS=-O1

我已经创建了一个新配置,使其处于活动状态,并在NetBeans属性弹出窗口-O1 - &gt;中设置上面的C++ Compiler选项。 Additional Options,我的编译行没有包含-O2选项。我的Additional Options小组位于以下位置:

Option Panel