【问题标题】:how to set debug and optimization flag with meson如何使用介子设置调试和优化标志
【发布时间】:2020-11-11 21:02:12
【问题描述】:

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

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

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

那么如何让gcc 以尽可能不脏的方式使用-Ofast -g3 标志进行编译?

【问题讨论】:

  • 您最好的选择是坚持debugoptimized,请参阅this SO question 了解原因
  • @nielsdg 我根本不希望它是可调试的。我需要的东西很少,是所有堆栈跟踪中的一个。但绝对有必要优化为-Ofast。如果我使用dubugoptimized,则优化只有-O2

标签: linux gcc optimization meson-build


【解决方案1】:

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

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

if get_option('buildtype') == 'custom'
  add_project_arguments('-Ofast', '-g3',  language : 'cpp')
endif

如果你不能修改介子脚本,你可以改变环境变量

CXXFLAGS="-Ofast -g3" meson --buildtype=custom build_c

--reconfigure 似乎看不到环境变量。

【讨论】:

    猜你喜欢
    • 2012-04-17
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 2017-10-03
    • 1970-01-01
    • 2022-09-29
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多