Я хочу, чтобы все мои программы были собраны с помощью флагов оптимизации '-O2'. Но просто отключите '-O2' на hello.cc, но появляется сообщение об ошибке.
Вот мои тестовые шаги.
git clone --depth=1 https://gn.googlesource.com/gn
cd gn/tools/gn/example
gn gen out
ninja -v - C out
Изменить ./build/BUILD.gn как
...
config("compiler_defaults") {
if (current_os == "linux") {
cflags = [
"-fPIC",
"-pthread",
"-O2", # optimize as default
]
}
}
...
Теперь работает ninja -v -C out
. Затем я хочу отладить hello.cc, поэтому я изменяю ./BUILD.gn как
executable("hello") {
sources = [
"hello.cc",
]
cflags -= [ "-O2" ] # try to disable optimze, but failed
deps = [
":hello_shared",
":hello_static",
]
}
но показывает это сообщение об ошибке
[1/1] ../../../../../../../../../usr/bin/gn --root=./.. -q gen .
FAILED: build.ninja
../../../../../../../../../usr/bin/gn --root=./.. -q gen .
ERROR at //BUILD.gn:9:3: Undefined identifier.
cflags -= [ "-O2" ] # try to disable optimze, but failed
^-----
ninja: error: rebuilding 'build.ninja': subcommand failed