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

如何为GNU Autotools重新配置大型程序

为GNU Autotools重新配置大型程序,您需要遵循以下步骤:

  1. 确保您已安装了GNU Autotools。如果没有,请访问https://www.gnu.org/software/automake/download.html下载并安装。
  2. 在程序的根目录中创建一个名为“configure.ac”的文件。这个文件将包含程序的配置信息。
  3. 在“configure.ac”文件中,添加以下内容:
代码语言:txt
复制
AC_INIT([program-name], [version], [bug-report-address])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([src/main.c])

# 检查依赖库和其他软件包
AC_CHECK_HEADERS([header1.h header2.h])
AC_CHECK_LIBS([library1], [function1])
AC_CHECK_LIBS([library2], [function2])

# 检查编译器和链接器选项
AC_PROG_CC
AC_PROG_RANLIB
AC_PROG_LIBTOOL

# 检查其他特性
AC_C_INLINE
AC_TYPE_UINT32_T

# 输出配置文件
AC_OUTPUT([Makefile src/Makefile])
  1. 在程序的根目录中创建一个名为“Makefile.am”的文件。这个文件将包含程序的构建规则。
  2. 在“Makefile.am”文件中,添加以下内容:
代码语言:txt
复制
AUTOMAKE_OPTIONS = foreign

bin_PROGRAMS = program-name
program_name_SOURCES = src/main.c src/file1.c src/file2.c
program_name_LDADD = -llibrary1 -llibrary2

SUBDIRS = src
  1. 在“src”目录中创建一个名为“Makefile.am”的文件。这个文件将包含源代码的构建规则。
  2. 在“src/Makefile.am”文件中,添加以下内容:
代码语言:txt
复制
noinst_LIBRARIES = libprogram-name.a
libprogram_name_a_SOURCES = file1.c file2.c
  1. 在程序的根目录中运行以下命令,以生成“configure”脚本:
代码语言:txt
复制
autoreconf -i
  1. 运行以下命令,以配置程序:
代码语言:txt
复制
./configure
  1. 最后,运行以下命令,以构建和安装程序:
代码语言:txt
复制
make
sudo make install

现在,您已经为GNU Autotools重新配置了大型程序。如果您需要添加或更改依赖库或其他软件包,请更新“configure.ac”和“Makefile.am”文件,并重复上述步骤。

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

相关·内容

autotools及Yocto下通过autotools编译

一样新的东西的由来,往往因为之前的东西用的很不爽,然后更具弊端创造出更加容易使用的东西,比如在大型的项目中,Linux,他是通过Makefile的方式进行编译。...对自己发布的软件有严格的规范, 比如必须附带许可证声明文件COPYING等,否则automake执行时会报错. automake提供了3中软件等级:foreign, gnu和gnits, 供用户选择。...默认级别是gnu. 在本例中, 使用了foreign等级, 它只检测必须的文件。 bin_PROGRAMS = rice:生成的可执行文件名称,生成多个可执行文件,可以用空格隔开。.../COPYING' using GNU General Public License v3 file Makefile.am: Consider adding the COPYING file...GNU checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking

1.3K20

CMake,大型项目采用的构建工具

《Makefile的实战例子》 《autotools及Yocto下通过autotools编译》 之前对这两个工具进行了描述,其中autotools最终的目的为了实现Makefile。...而autotools和CMake大多都是应用在大型的项目上。接下来讲讲新工具: CMake的特点 开放源代码。 跨平台,并可生成native编译配置文件,在Linux平台,生成makefile。...能够管理大型项目。 简化编译构建过程和编译过程,工具链也非常简单:cmake+make。 高效率,比autotools效率快。主要原因:CMake在工具链中没有libtool。.... -- The C compiler identification is GNU 5.4.0 -- The CXX compiler identification is GNU 5.4.0 -- Check...类型 非目标文件的可执行程序脚本之类)指令 INSTALL语法 INSTALL(PROGRAMS files...

99120

CMake vs Make对比

程序员现在已经使用了CMake和Make了很久。当您加入大公司或开始使用大型代码库开发项目时,您需要处理所有这些构建。你必须看到这些“CMakeLists.txt”文件浮动。...当然,当第三方库(OpenGL)以便携式的方式被包含时,CMake真的开始闪耀。 有什么不同? 如果您使用Makefile,即在命令行中键入“make”,则构建过程有一个步骤。...我们将在这里跳入GNU构建系统领域。如果你不熟悉,这一段可能看起来像是jibber-jabber给你。好的,现在我给了法定的警告,我们继续吧!我们可以比较CMake和Autotools。...当我们这样做时,我们可以看到Make的缺点,它们构成了Autotools创建的原因。我们还可以看到CMake对Make的明显优势。...为此,GNU项目开发了一套集成的实用工具来完成Autoconf开始的工作:GNU构建系统,其最重要的组件是Autoconf,Automake和Libtool。 “做”不能这样做,至少没有修改它!

3.6K31

在tinycolinux上编译seafile

storage domain logic implented as enginx appstack componet也有利于我们研究将其与enginx中的其它部件集成及深入《发布enginx》一文中的课题研究,且程序实现上鲜明的...c+py混合编程特征和综合web+websocket的自然混合程序设计,更适合被用来作为教育目的,当然它不像OC一样仅需要虚拟空间就可以运行,只是这在云主机低价盛行的今天也不是什么大事了。...的,c+py混合项目as pylib,autotools构建。)...(纯py,django app,seafile的前端部分) 按依赖和先后顺后编译,使用到autotools一般都是先sudo autogen.sh,然后....安装配置seafile并用nginx+uwsgi方式启动: ----- 首先创建一个仓库(相当于odoo刚装完或重新配置时,要进入web/database/manager删减数据套件一样),seafile-admin

88430

cmake快速入门「建议收藏」

为何要使用cmake和autotools之类的项目构建工具? 我想,这恐怕是刚刚接触软件项目的人最应该问的问题之一了。 “Hello, world!“这个最经典的程序相信我们每个人都写过。...决定代码的组织方式及其编译方式,也是程序设计的一部分。因此,我们需要cmake和autotools这样的工具来帮助我们构建并维护项目代码。...二、cmake的主要特点: cmake和autotools是不同的项目管理工具,有各自的特点和用户群。...3.能够管理大型项目,KDE4 就是最好的证明。 4.简化编译构建过程和编译过程。Cmake 的工具链非常简单:cmake+make。...build CMakeLists.txt main.c $ cd hello/build/ $ ls $ cmake .. – The C compiler identification is GNU

1.1K60

漫谈C++ - 实践之路

在linux下以关连性来介绍了,g++,makefile,autotools,cmake,qmake,其中g++是最底层的工具命令,向上生长为makefile,最上层的就是 autotools,cmake...-print-multiarch Display the target's normalized GNU triplet, used as...在之后继续升级有两个方向了 autotools 或者cmakelist。autotools直白的翻译:自动工具链,这时候对复杂工程的或者说大型工程的使用已经基本满足了。...附言作为一名程序员,一定不要只关注开发的部分,要关注全局,代码编写只是工作的一部分,要了解业务,项目的前因后果,以及项目的部署使用情况,才会让你在开始的时候更加的游刃有余。...技术的调研一定要尽心尽力,这是在位自己节省工作,给自己减少坑,在构建项目的时候,项目的文件结构,技术选型,以及代码的编译,部署,打包全流程都要考虑到,才是一个合格的程序员。

17130

Autoconf编译配置

1、大型项目编译过程 ./configure make make install Linux中的configure/make/make install 到底在做些什么 1)....2、使用Autoconf过程 Autoconf工具只是autotools系列工具中的一个,运行之后可对configure.in脚本配置文件进行处理进而生成configure可执行文件。...autoheader,扫描configure.ac(configure.in)、acconfig.h(如果存在),生成config.h.in宏定义文件,里面主要是根据configure.ac中某些特定宏(AC_DEFINE...调用automake,将每个Makefile.am转化成Makefile.in,同时生成满足GNU编码规范的一系列文件(带-a选项自动添加缺少的文件,但有几个仍需要自己添加,在执行automake前需执行...,它将makefile.in文件生成Makefile文件 最后执行make,生成了可执行文件hello make install 安装到/usr/local/lib库中 参考资料: 大型项目使用

1.1K50

android root 缺少busybox,手机安装不了Busybox已经root安装后显示让更换路径..「建议收藏」

下面将介绍如何为Android加入busybox工具,通过编译得到一个可以在Android里面运行的busybox工具,就可以使用众多常见的linux命令了,find,touch等。...下载交叉编译工具: GNU Toolchain for ARM Processors 其中第一项选择ARM EABI或ARM GNU/Linux,第二项选择IA32 GNU/Linux TAR即可。...下面将介绍如何为Android加入busybox工具,通过编译得到一个可以在Android里面运行的busybox工具,我们就可以使用众多常见的linux命令了,find,touch等。...下载交叉编译工具: GNU Toolchain for ARM Processors 其中第一项选择ARM EABI或ARM GNU/Linux,第二项选择IA32 GNU/Linux TAR即可。...有可能是系统不兼容吧,比如小米的MIUI系统装了这个东西就是变砖 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160497.html原文链接:https://javaforall.cn

2.3K10
领券