automake/autoconf工程管理

automake搭建项目工程 automake 搭建项目工程 阅读详情

目录结构

最顶层目录名用模块名称,这里是test

源文件放在模块下的src子目录里,这里是test/src

 

创建源文件

在src下创建test.c

 

 

 

创建Makefile模板

创建test/Makefile.am,内容如下:

SUBDIR=src

表示其下有一个src子目录,若有多个子目录,用空格分开

创建test/src/Makefile.am,内容如下:

bin_PROGRAMS=test

test_SOURCES=test.c

 

am扩展名是automake的简称,它是 automake用来产生Makefile.in文件的模板。

 

创建autoconf的模板

在test里运行sudo autoscan,生成文件autoscan.log和configure.scan,将configure.scan重命名为configure.in:

sudo mv configure.scan configure.in

打开configrure.in并作修改:

 

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.65])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AC_CONFIG_SRCDIR([src/test.c])
AC_CONFIG_HEADERS([config.h])

# Checks for programs.
AC_PROG_CC

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_CONFIG_FILES([Makefile
                 src/Makefile])
AC_OUTPUT

 

修改成:

 

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.65])
AC_INIT(test, 0.1, xxx@xxx.com)
AC_CONFIG_SRCDIR([src/test.c])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE(test, 0.1)
# Checks for programs.
AC_PROG_CC

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_CONFIG_FILES([Makefile
                 src/Makefile])
AC_OUTPUT

 

复制所用到的宏

sudo aclocal

生成aclocal.m4文件和autom4te.cache文件夹

 

生成配置头文件的模板

sudo autoheader

生成config.h.in文件

 

创建几个必要的文件

README

NEWS

AUTHORS

ChangeLog


生成Makefile.in和所需要的脚本

sudo automake -a

 

生成configure脚本

sudo autoconf

autoconf调用m4(即macro)展开configure.in中的宏,生成configure脚本。

 

生成最终的Makefile

sudo ./configure

configure有以下两个常用的参数:

--prefix用来指定安装目录,Linux下默认的安装目录是/usr/local

--host用于交叉编译,比如x86的PC机上编译在ARM板上运行的程序

如:sudo ./configure --host=arm-linux

 

编译

sudo make

 

安装

sudo make install

 

发布软件包

sudo make dist或sudo make distcheck

生成test-0.1.tar.gz软件包

 

automake和autoconf测试代码 automake和autoconf测试代码,具体参见: http://blog.youkuaiyun.com/htttw/article/details/7272356 立即下载

相关推荐

空地多无人平台协同路径规划复现:从建模到Matlab仿真全解析

路径规划是机器人领域的核心基础技术,从单机避障到多平台协同,问题复杂度显著提升。空地协同规划融合无人机与无人车的异构优势,通过将地图分层建模为空中与地面栅格,并采用A*算法生成初始路径、B样条平滑以及改进遗传算法进行任务分配与时间同步优化,能够有效处理几何约束、运动学约束和避碰约束等。该技术广泛应用于区域巡逻、目标搜索、物资转运等任务场景,也是高校论文复现和工程仿真的常见课题。本文从问题建模、算法设计到Matlab代码结构,系统梳理了一套空地多无人平台协同路径规划的复现思路,同时给出坐标系校准、遗传算法收敛

weixin_32175665的博客 248

Linux C基础学习之autoconf与automake

一、autoconf      autoconf是一个用于生成可以自动的配置软件源代码包以适应多种UNIX系统的shell脚本的工具。由autoconf生成的配置脚本在运行时与autoconf是无关的,也就是说,配置脚本的用户并不需要拥有autoconf。由autoconf生成的这些脚本通常被命名为configure,它们检查当前系统是否满足软件正常运行所需要的特征,并根据检查得到的信息生成Ma

Chenliangyin_love的专栏 3968

Ubuntu22环境下Xinference与RAGFLOW集成:构建高效rerank模型服务【实战指南】

本文详细介绍了在Ubuntu22.04系统上,通过部署Xinference模型推理服务来加载bge-reranker-base等rerank模型,并将其与RAGFLOW框架集成的完整实战指南。该方案实现了模型服务的解耦与灵活管理,有效提升RAG系统的检索精度与答案相关性,并提供了从环境配置、服务启动、网络连接到性能调优及常见问题排查的全流程解决方案。

pluto的博客 499

automake/autoconf入门

automake/autoconf入门   一、Makefile介绍 Makefile是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接,但不是所有的文件都需重新编译,Makefile中纪录有文件的信息,在make时会决定在链接的时候需要重新编译哪些文件。     Makefile的宗旨就是:让编译器知道要编译一个文件需要依赖其他的哪些文件。当那些依赖文

guomei的专栏 3057

射频总集篇:(不断更新)

射频每一章涉及到的重点理论/设计方法 CHAPTER 1 传输线理论 输入阻抗Zin,负载阻抗ZL,驻波比ρ,反射系数 CHAPTER 2 波导 矩形波导,圆波导,同轴线 CHAPTER 3 微型带状传输线 微带线的参数设计,带状线的参数设计 CHAPTER 4 ...

jieyannn的博客 1919

STM32与小米CyberGear微电机的CAN通信协议深度解析

本文深度解析STM32与小米CyberGear微电机的CAN通信协议,涵盖硬件连接、CAN总线配置、通信协议解析及多电机协同控制。重点介绍了基于STM32的电机控制实践,包括运动模式、速度与位置模式设置,以及数据反馈与故障诊断,为机器人及自动化设备开发提供实用指南。

www00的博客 359

automake创建Makefile

autoconf/automake主要用于创建makefile,本文主要介绍一下automake的简单用法。 Ubuntu下安装automake: sudo apt-get install automake 即可安装automake的相关工具。 使用automake主要会用到aclocal、autoscan、autoconf、autoheader和automake这几个命令。...

weixin_30319097的博客 898

Zigbee通信(CC2530终端 + ESP32-C6协调器)

实现了CC2530 zigbee终端与ESP32-C6 zigbee协调器的通信交互。

Ecsply的博客 2564

【Linux笔记】【基础系列】 automake基础使用3

上一篇笔记Automake基础使用 2记录了源文件在不同目录下如何实现 Automake 生成 Makefile 的步骤。接下来在基于上一篇的例子上增加引用动态库。下面还是基于树莓派4B平台进行开发,基于上一篇的示例程序进行修改。新建一个用于写示例的文件夹: 在原先的基础上修改 isPrime.c 文件,将判断素数的方法修改,其中用到了,需要包含,编译的时候需要链接数学库。isPrime.c 的内容变更为: 所有的文件如下: 所需的文件就都准备好了,接下来开始生成Makefile。生成的步骤的顺序和上一篇还

343

FFDNet-pytorch版本代码训练教程

该文章为FFDNet-pytorch版本代码训练教程,抓紧订阅学习!尽早入门发论文哦!

假技术Po主 1506

uniapp - 详细解决 H5 网页报错 Uncaught Error: Async component timed out after ? ms.(移动端h5页面白屏或加载缓慢失败,超时报错处理)

uni-app,vue3,网页,h5,移动端,手机H5页面,浏览器,报错,uniapp报错,Asynccomponenttimedoutafter,如何解决这个问题,vue3Asynccomponenttimedoutafter,异步组件超时了怎么办,async,详细解决方案,AsyncComponents异步组件,导致页面打不开了,白屏什么也不显示,网页载入非常慢卡顿,vue3网站报错,超时,nuxt3,详细解决方案,浏览器控制台报错,爆红并且页面卡住了,依旧报错,找不到异步组件的报错

🏆 前端领域优质创作者 3774

系统程序员成长计划-工程管理(一)

系统程序员成长计划-工程管理(一) 作者联系方式:李先静 到目前为止本书的上半部分已经完成了。在上半部分中,我们学习了基本的数据结构、算法和设计思想。在进行深入学习之前,我们把前面所写的代码整理成一个通用的函数库,这个函数可能在以后的工作中用得着。 前面我们写的Makefile非常简单,大概类似下面的内容: all: gcc -Wall -g -DDARRAY_TEST darray.c -o darray_test gcc -Wall -g -DDLIST_TEST dlist.c -o

qq_39575672的博客 169

【CASS精品教程】013:CASS9.1生成标准图幅案例教程

在CASS中,可以很方便的生成标准图幅,如50*50。本文演示cass中,根据测区范围标准图幅生成过程。

智慧空间实验室 1万+

Autoconf/automake step by step

Autoconf/automake step by step

jggyff的博客 97

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Linux C工程管理 之autoconf与automake

一、autoconf      autoconf是一个用于生成可以自动的配置软件源代码包以适应多种UNIX系统的shell脚本的工具。由autoconf生成的配置脚本在运行时与autoconf是无关的,也就是说,配置脚本的用户并不需要拥有autoconf。由autoconf生成的这些脚本通常被命名为configure,它们检查当前系统是否满足软件正常运行所需要的特征,并根据检查得到的信息生成Ma

Bruce_0712的博客 1008

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

autoconf 和 automake的相关学习资料

<br />最近想要用autocon和automake 管理 项目源码, 收集了一些相关的学习资料。<br /> <br />1  http://www.ibm.com/developerworks/cn/linux/l-makefile/#author<br />注:该文章中存在着一个小问题, 就是我们在执行automake -a 之前, 应先执行autoheader命令,autoheader命令用于生成config.h文件。<br /> <br /> <br />2 <系统程序员成长计划>之工程管理<b

dcdcmin的专栏 555

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

系统程序员成长计划-工程管理(二)

系统程序员成长计划-工程管理(二) 作者联系方式:李先静 系统程序员成长计划-工程管理(二) HelloWorld automake比起IDE要复杂很多,这里我们先写一个Hello World例子,明白其中的基本概念后,再用它来管理实际的工程。 o目录结构 最顶层目录名用模块名称,这里是helloworld。 源文件放在模块下的src子目录里,即helloworld/src。 这是惯例。有多个子模块时,各个子模块的源代码放在各自的目录里。 o 创建源文件 在src下创建源文件main.c,内容就是一个简单

qq_39575672的博客 173

系统程序员成长计划-工程管理(三)

系统程序员成长计划-工程管理(三) 作者联系方式:李先静 系统程序员成长计划-工程管理(三) 函数库 现在我们用automake来管理我们前面所建立的函数库,这是一个基础的函数库,我们就把它命名为base吧。 o 目录结构 base 根目录 base/src 源代码目录 o 创建Makefile模板 base/Makefile.am内容为: SUBDIRS=src base/src/Makefile.am内容为: lib_LTLIBRARIES=libbase.la libbase_la_SOURCES

qq_39575672的博客 210
上一篇: Hello World
下一篇: 线性表
test27
博客等级 码龄16年 11粉丝 30原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值