Как локально отключить опцию оптимизации в gn? - PullRequest
0 голосов
/ 07 марта 2019

Я хочу, чтобы все мои программы были собраны с помощью флагов оптимизации '-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
...