首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

创建autotools构建源的调试版本

是指使用autotools工具链来构建软件源代码,并在构建过程中启用调试选项,以便在调试阶段进行代码调试和错误排查。

Autotools是一套用于自动化软件构建的工具集,包括Autoconf、Automake和Libtool。它们通常与GNU编译器集合(GCC)一起使用,用于生成可移植的、跨平台的构建系统。

要创建autotools构建源的调试版本,可以按照以下步骤进行:

  1. 确保系统已安装autotools工具链(Autoconf、Automake和Libtool)。可以通过包管理器(如apt、yum、brew等)来安装这些工具。
  2. 在软件源代码的根目录下,创建一个名为configure.ac的文件,用于配置软件的构建选项。在该文件中,可以指定调试选项,如启用调试符号、关闭优化等。具体的配置选项可以参考Autoconf的文档。
  3. 运行autoreconf命令,该命令会根据configure.ac文件生成configure脚本和其他必要的文件。可以使用以下命令运行autoreconf:
代码语言:txt
复制

autoreconf -i

代码语言:txt
复制
  1. 运行./configure命令,该命令会根据系统环境和配置选项生成Makefile。可以使用以下命令运行configure:
代码语言:txt
复制

./configure

代码语言:txt
复制

在configure命令中,可以使用--enable-debug选项来启用调试模式。

  1. 运行make命令,该命令会根据生成的Makefile进行编译。可以使用以下命令运行make:
代码语言:txt
复制

make

代码语言:txt
复制

在make命令中,可以使用CFLAGSLDFLAGS环境变量来传递调试选项,如启用调试符号、关闭优化等。

  1. 运行生成的可执行文件进行调试。可以使用调试器(如GDB)来调试程序,查找错误和进行代码分析。

总结:

创建autotools构建源的调试版本需要使用autotools工具链,并在配置和编译过程中启用调试选项。具体步骤包括创建configure.ac文件、运行autoreconf生成configure脚本、运行configure生成Makefile、运行make进行编译,并使用调试器进行调试。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • xmake v2.3.1 发布, 无缝对接其他构建系统

    命令补全支持 优化get.sh安装和xmake update更新脚本,添加国内镜像,加速下载和安装更新 gcc/clang编译错误输出支持原生色彩高亮支持 新增msys/cygwin平台,并且xmake...不得不承认,目前就构建速度来讲,ninja确实比xmake快不少,后续版本我会尝试优化下xmake构建速度。...尝试使用其他构建系统构建 xmake v2.3.1以上版本直接对接了其他第三方构建系统,即使其他项目中没有使用xmake.lua来维护,xmake也可以直接调用其他构建工具来完成编译。...,复用xmake平台探测和sdk环境检测,简化平台配置 对接交叉编译环境,即使是用autotools维护项目,也能通过xmake快速实现交叉编译 目前已支持构建系统: autotools(已完全对接...> 目前就autotools对接支持了xmake交叉编译,后期还会对cmake等其他构建系统加上支持。

    87830

    如何使用 MyGet 这个激进 NuGet 体验日构建版本 .NET Standard .NET Core

    很多库都会在 nuget.org 上发布预览版本,不过一般来说这个预览版本也是大多可用。...然而想要体验日构建版本,这个就没有了,毕竟要照顾绝大多数开发者嘛…… 本文介绍如何使用 MyGet 这个激进 NuGet ,介绍如何使用框架级别的库预览版本如 .NET Standard 预览版本...加入 MyGet 这个 NuGet 添加 NuGet 方法在我和林德熙博客中都有说明: 全局或为单独项目添加自定义 NuGet - 吕毅 VisualStudio 给项目添加特殊 Nuget...然后把 MyGet 添加进去: https://dotnet.myget.org/F/dotnet-core/api/v3/index.json 如果你想添加其他 NuGet ,可以参见我另一篇博客...:我收集各种公有 NuGet - 吕毅。

    97910

    autotools及Yocto下通过autotools编译

    首先我们创建一个测试代码main.c,通过简单例子来说明autotools使用流程,源文件内容如下: #include int main(int argc, char *argv...、版本号、联系方式 AM_INIT_AUTOMAKE 必须要,参数为软件名称和版本号 AC_CONFIG_SCRDIR 宏用来侦测所指定源码文件是否存在, 来确定源码目录有效性.。...由于我目前系统构建环境是基于Yocto上。所以我这里直接以Yocto进行说明。 在Yocto工程创建自己recipe。这里我随便找了一个地方放我recipe进行演示。...创建files目录和rice-autotools_git.bb文件。然后将上面我们利用autotools工具得到内容拷贝到files目录下。...SRC_URI:包下载URI,其中我们这里指向files目录rice-autotools.tgz。

    1.5K20

    CMake vs Make对比

    “Make”不仅限于构建一个包。您还可以使用“Make”来控制安装或卸载软件包,为其生成标签表, CMake CMake代表跨平台制作。CMake识别哪个编译器用于给定类型。...如果您不知道,您不能使用相同编译器来构建所有不同类型。您可以在每次建立项目时手动执行,但这将是乏味和痛苦。CMake为每种类型目标调用正确命令序列。...调试标志包括将变量CMAKE_BUILD_TYPE设置为“调试”,或者在调用程序时将其传递给CMake: cmake -DCMAKE_BUILD_TYPE:STRING =调试。...根据您选择构建系统(例如,在Windows上Make on * nix,VC ++或MinGW等),这将创建一个makefile或相当东西。构建系统可以作为参数传递给CMake。...好,现在我给了法定警告,我们继续吧!我们可以比较CMake和Autotools。当我们这样做时,我们可以看到Make缺点,它们构成了Autotools创建原因。

    4K31

    cmake快速入门「建议收藏」

    一、为何要使用项目构建工具? 为何要使用cmake和autotools之类项目构建工具? 我想,这恐怕是刚刚接触软件项目的人最应该问问题之一了。 “Hello, world!...因此,我们需要cmake和autotools这样工具来帮助我们构建并维护项目代码。 看到这里,也许你会想到makefile,makefile不就是管理代码自动化编译工具吗?...为什么还要用别的构建工具? 其实,cmake和autotools正是makefile上层工具,它们目的正是为了产生可移植makefile,并简化自己动手写makefile时巨大工作量。...5.可扩展,可以为 cmake 编写特定功能模块,扩充 cmake 功能。 三、安装cmake 几乎所有主流Linux发行版中都包含有cmake安装包,直接从中添加即可。...注:为了能够测试本文中实例程序,如果读者Linux系统中所带cmake版本低于2.6,请从官网下载2.6版本或以上源代码进行编译并安装。

    1.2K60

    【Z投稿】使用Eclipse搭建Zabbix server端C源码开发调试环境

    安装Zabbix调试环境 3.1 创建Zabbix用户账户 groupadd zabbix useradd -g zabbix zabbix 3.2 创建Zabbix数据库 create database...右键单击zabbix-4.0.3源码工程,选择Reconfigure Project进行构建项目,构建过程如果提示缺少依赖包,使用yum安装: ?....gdbinit文件会在Eclipse调试器配置时使用。 3.14 调试zabbix_server 如下图所示,打开调试配置窗口: ? 点击查看大图 调试配置如下图: ?...:启用多进程GDB,自动调试创建子进程。 配置完成,点击窗口右下角Debug按钮,即可调试Zabbix Server,在程序里打断点。 ?...点击查看大图 3.15 调试zabbix_agentd 调试zabbix_agentd与zabbix_server步骤基本一致。

    1.1K50

    Gradle For Android(4)--构建不同版本

    介绍 当构建App时候,通常都会有不同版本。比如说测试版本,正式版本,Debug版本等等。而这些版本通常有不同配置,比如说服务器域名,Log开关,付费开关等等特性。...创建Project时候不仅仅只有Release构建类型,默认每个Module都有一个Debug构建类型。我们可以在里面改改里面的值。...Product flavors Build Type可以对于相同App配置生成不同类型构建,与Build Type相反,product flavors用来创建相同App,但是不同版本。...例如,如果有一个标准Debug和Release构建类型,并且你创建了一个Red和BlueProduct Flavor,那么下面的Build Variant就会生成: ?...Creating build variants Gradle可以很容易处理复杂多种构建。甚至当创建两种BuildType和两种Product Flavors时候。

    1.9K20

    上架时候怎么向某个版本添加构建版本

    在提交 App 至“App 审核”前,请(从你为该版本上传所有构建版本中)选择你想要提交版本。一个 App Store 版 本仅可关联一个构建版本。...但是,在提交该版本至“App 审核”之前,你可以任意更改你构建版本。 1.从“我 App”中,选择你 App。页面打开时默认选中“App Store”标签页。...2.在侧边栏中找到你想要选择平台,并在下方点按 App 版本。 3.在右侧,向下滚动至“构建版本”部分,点按“构建版本”旁添加按钮(+)。...仅在你已上传构建版本,但尚未选择某个构建版本时,添加按钮才会显示。如果已有构建版本,请先移除构建版本。 4.在“添加构建版本”对话框中,选择您想要提交构建版本。...如果你 App 某个先前版本在 App Store 中为“可供销售”状态,那么构建版本列表仅包含您在该版本上架之后上传 构建版本。 5.点按“完成”。

    51510

    第39问:如何编译 MySQL 调试版本

    问 我们在第16问中使用过 mysql 内置调试版本 mysqld-debug ,但有些 MySQL 版本中没有内置调试版本....这次介绍一下如何编译一个调试版本 实验 我们先准备一个安装了 docker 环境, 之所以用容器, 是因为我们在进行各种试验后, 可以将容器毁掉重建, 保持系统环境干净统一, 非常便利....创建一个 build 目录, 之后 MySQL 会将编译过程文件和结果都放在这个文件夹里: ? 对编译进行配置: ? 在一大段输出后, 可以看到配置成功信息: ? 现在可以正式编译了: ?...这些被抹掉调试信息是我们使用调试器时所需要. 我们自己编译了调试版本 MySQL, 就有了这些信息加持, 我们就能使用更多调试手段....当然, 保留了调试信息, 就意味着运行性能会下降, 所以 MySQL 调试版本不能用来做性能测试.

    97620

    发布版本构建版本?聊聊持续交付中版本设计和管理

    从产品管理和售卖角度,这个版本只是对于外部发布有用,比如客户要了解发布版本特性等等。简单说,这个“版本”是我们研发过程最终交付目标,往往和产品规划有关。...那么过程中,需要一个唯一ID来标记,研发过程每次构建产出,并且要保证唯一性。这就是构建制品版本。 区别小结 持续交付流水线中版本号 怎么得到构建制品版本?...对于编译型语言,甚至会把这个版本加入到 assemblyinfo中,作为版本升级兼容性判断 上传制品时候,可以给制品文件名加上这个变量;如果对接CI/CD平台,也需要把”构建版本“发送给CI/CD平台...在构建脚本中,预留占位符“packagename-${build_id}”, 这样你部署脚本就可以做到了复用。...微服务构建发布场景 比如,在微服务多仓库构建过程中,也会出现版本使用场景,比如通过“指针方式”记录代码提交;在多服务协同开发过程中,这个也很重要。

    38910

    SpringBoot+AOP构建多数据切换实践

    这个对象主要是用于对每个请求线程数据信息做统一分配和管理。 在多并发场景下,为了防止不同线程请求数据出现“互窜”情况,通常我们都会使用到threadlocal来做处理。...数据,所以配置数据配置类如下:这里面我默认该应用配置类PROD数据,用于测试使用。...,那么我们该如何借助注解来实现动态切换数据操作呢?...关于AbstractRoutingDataSource 动态路由数据注入原理, 可以看到这个内部类里面包含了多种用于做数据映射map数据结构。 ?...里面,又有对于初始化数据注入操作,这里面的targetDataSources 正是上文中我们对在初始化数据时候注入信息。

    53340

    一个创建自定义事件例子

    RunLoop 适用场景 回顾一下上一篇文章介绍,只有当你为你应用创建子线程时,才可能需要显式运行一个 RunLoop 。而主线程 RunLoop 是自动启动循环。...这些回调会被 RunLoop 创建 AutoreleasePool 环绕着,所以不会出现内存泄漏,开发者也不必显示创建 Pool 了。...当有 UIGestureRecognizer 变化(创建/销毁/状态改变)时,这个回调都会进行相应处理。...一个Demo 根据上面对NSURLConnection介绍,我们模拟一个类似的设计来实现通过RunLoop来等待和处理事件。 第一步:创建任务线程 创建子线程,用于初始化一个接收自定义事件。...并将事件加入到当前RunLoop中。 第二步:设计自定义事件 自定义事件包括初始化,添加事件到指定RunLoop,从指定RunLoop中删除事件等方法。

    2.2K100

    VBA创建多个数据数据透视表

    1、需求: 有多个表数据,格式一致,需要创建到1个数据透视表。 2、举例: 比如要分析工资数据,工资表是按月分了不同Sheet管理,现在需要把12个月数据放到一起创建1个数据透视表。 ?...3、代码实现 用过Excel应该都用过透视表功能,透视表功能非常强大,而且简单易用,我们一般用透视表都是处理单独1个Sheet数据,如果要完成多个Sheet透视处理,可能大家想到最直接方法是复制到...1个表里再处理,但是这样一旦数据有变化,又要重新复制。...用SQL语句对数据格式要求比较严格,所以表格要比较规范,建议: 标题在第1行 每一列保证数据格式是一致,不要又有数字又有文本 如果你会SQL语句的话,不需要VBA也可以完成这个任务,例子需要SQL...使用VBA代码自动创建,这种能更加方便增加Sheet: Sub vba_main() Dim str_sql As String str_sql = GetSql()

    3.3K20

    xmake v2.3.7 发布, 新增 tinyc 和 emscripten 工具链支持

    ,因为现在大部分已有的第三方项目都是用 autotools/cmake 等第三方构建系统维护,如果将它们迁移到 xmake 配置那么迁移成本还是比较高。...虽然 xmake 配置编写非常简单上手,但也没必要对已经稳定维护项目去大改构建系统,xmake 主要还是用于一些新项目的构建维护。...基于此背景,xmake 采用 trybuild 编译模式,也就是所谓尝试编译模式,通过自动探测第三方项目的构建系统,如果检测到是 autotools 维护项目,那么自动调用 ....xmake检测到 autotools 构建系统后,就会提示用户是否需要尝试调用 autotools 来编译,输入y确认后,就可以直接完成编译,对于 cmake 项目也是,只需要执行相同 xmake...而不需要关心 autotools/cmake 需要如何去配置使用和编译,毕竟 cmake 对于 windows 和 linux 平台,需要生成不同构建文件,编译方式也是不同,一会调用 make,一会调用

    1.3K10
    领券