如何使用介子设置调试和优化标志

mas*_*sti 6 linux optimization gcc meson-build

我在 ubuntu 20.04 上使用介子 0.53.2。
我想要一个最大限度优化的可执行文件 ( -Ofast) 但包含所有调试符号 ( -g3)

  • 如果我使用--buildtype=release它优化-O2并且可执行文件不包含调试符号。
  • 如果我使用--buildtype=debug它根本不会优化并使用-g.
  • 如果我使用--buildtype=debugoptimized它优化-O2并使用-g.

我尝试使用--debug它似乎不起作用,因为可执行文件不包含任何调试符号。相反,如果我使用-Ddebug=true调试符号,则存在但带有 flag -g

那么我该如何以最不脏的方式gcc使用标志进行编译呢?-Ofast -g3

Ask*_*nto 1

从命令行,您可以使用选项切换更高级别的优化optimization=3-O3相反,它给了你-O2

通过编辑介子脚本,您可以设置任何标志。

if get_option('buildtype') == 'custom'
  add_project_arguments('-Ofast', '-g3',  language : 'cpp')
endif
Run Code Online (Sandbox Code Playgroud)

如果您无法修改介子脚本,您可以更改环境变量

CXXFLAGS="-Ofast -g3" meson --buildtype=custom build_c
Run Code Online (Sandbox Code Playgroud)

并且--reconfigure似乎没有看到环境变量。