【问题标题】:Creating debug build of autotools' build source创建 autotools 构建源的调试构建
【发布时间】:2011-05-16 23:36:01
【问题描述】:

给定:

  • source tar.gz
  • AFAIK,configure 确实支持调试构建(configure --help 不显示 --enable-debug)

问题:

  • 如果软件包的作者一开始没有提供调试版本,那么使用调试版本是否安全?
  • 如果 pre.v 问题的答案是肯定的,那么我如何生成调试版本?我应该修补 configure.ac 吗?

谢谢

【问题讨论】:

标签: makefile compilation autotools


【解决方案1】:

精心设计的 Autotools 项目支持用户提供的编译器和链接器标志。一些作者选择提供--enable-debug 来简化调试构建的创建,但它的缺失并不意味着它不能完成。我建议您尝试的第一件事是指定适合您的调试需求的编译器和链接器标志。如果你在 Linux 上使用gcc,那可能是

./configure CFLAGS="-ggdb3 -O0" CXXFLAGS="-ggdb3 -O0" LDFLAGS="-ggdb3"

建议将变量指定为参数进行配置,如图所示,而不是环境变量。通过这种方式,当您进行触发自动重新配置的更改时,Autotools 将保留这些设置。

如果这不能产生预期的结果,是的,可能需要破解构建系统。

【讨论】:

  • 备注:即使您将参数指定为环境变量(CFLAGS=-foo ./configure),它们也会保存在config.status中,并在需要自动重新配置时正确传入。
  • @Jack Kelly,我一直认为 autoconf 手册在某处说并非如此。我现在找不到了。这有改变吗?
  • @ptomato:我刚刚用最小的configure.ac 进行了测试,它可以工作,无论-C 是否传递给configure。
【解决方案2】:

您可以定义一个自动设置环境变量的别名:

alias configuredebug='CPPFLAGS=-DDEBUG CFLAGS="-g -O0" CXXFLAGS="-g -O0" ./configure'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多