网站死循环上海比较好的服装外贸公司
news/
2025/9/24 18:20:49/
文章来源:
网站死循环,上海比较好的服装外贸公司,合肥建站免费模板,南山制作网站公司在Linux操作系统下进行开发#xff0c;编写Makefile似乎是不可缺少的事情。但是对于一个比较大的工程#xff0c;编写一个符合规范的Makefile并非易事。而且由于Makefile的各种显式#xff0c;隐式规则#xff0c;加之平时并不经常编写Makefile#xff0c;导致我们写一个M…在Linux操作系统下进行开发编写Makefile似乎是不可缺少的事情。但是对于一个比较大的工程编写一个符合规范的Makefile并非易事。而且由于Makefile的各种显式隐式规则加之平时并不经常编写Makefile导致我们写一个Makefile文件变得更加困难了。幸好Linux社区有一群非常懒又非常勤奋得程序员他们开发了一个可以自动生成Makefile文件得工具这就是autotools.该工具可以通过扫描源文件自动生成一个Makefile文件。是不是很神奇下面是生成Makefile的一个整体流程我们后面慢慢介绍。安装autotools有的系统可能并没有autotools工具需要手动安装以Ubuntu为例可以通过如下命令进行安装sudo apt install automake完成安装之后就可以使用autotools进行下面的流程了。生成configure.ac文件首先我们要准备一些源文件如下图是本文准备的源文件。本文以C语言开发的程序为例其中main.cpp是主程序所在文件而async_network*和storage*分别是网络通信模块和本地存储模块分别封装了一个C类来实现具体的功能。本文通过多个文件是为了增加项目的复杂性。源文件的具体内容本文不再赘述因为这个与内容无关。完成对源文件创建后我们就可以通过autoscan命令对该目录进行扫描生成configure.scan文件。首先切换到该目录然后执行命令具体如下autoscan执行成功后可以看出多了两个文件一个是autoscan.log这个是日志文件另外一个是configure.scan文件这个是扫描的结果文件。这里configure.scan其实是一个模板文件我们需要手动修改一下其内容并将其改名为configure.ac。具体需要做1) AC_INIT里面的参数: AC_INIT(main,1.0, sunnyzhang126.com)2) 添加宏AM_INIT_AUTOMAKE3) 在AC_OUTPUT后添加输出文件Makefile。完成修改后的文件内容如下生成aclocal.m4文件直接执行aclocal命令即可生成该文件aclocalaclocal.m4是一个宏定义文件该文件内容的生成依赖于configure.ac文件。aclocal会根据confgure.ac文件的内容搜索本地的m4文件(通常在类似目录下面/usr/share/aclocal-1.15/)然后生成一个在本目录下面使用的aclocal.m4文件。生成config.h.in文件该文件的生成比较简单直接在命令行执行如下命令即可autoheader这个文件是一个模板文件后面会利用该文件生成config.h文件。该文件包含一些宏定义。生成Makefile.in文件生成Makefile.in文件之前需要首先手动的创建一个Makefile.am文件该文件用于描述源文件与目标文件的关系。本文对应的Makefile.am文件如下所示可以看出该文件非常简单这比写一个Makefile要简单的多。如果要生成多个目标文件需要在这里写多个源文件与目标文件的对应关系。这种情况是非常常见的比如一些复杂的项目中通常会包含主程序测试程序动态库等等。生成configure文件上述文件都生成后就可以生成configure文件了。该文件是用于生成Makefile的一个脚本。我们在很多开源项目中肯定都遇到过。在开源项目中通常都有一个生成好的configure文件我们只需要执行该文件就可以生成Makefile。生成configure文件的方法很简单我们执行如下命令即可autoconf至此我们完成了生成Makefile的所有准备工作然后我们在该目录下面运行configure脚本即可生成Makefile文件。./configure可以看出在整个过程中我们只需要手动修改或者创建2个文件而且修改的内容很少。最后我们就可以得到一个完整的Makefile文件。对于大型的软件项目这种方法无疑是非常有效的。今天的内容就到这里大家只需要按照步骤运行就可以生成Makefile文件。后续我们在对每个工具进行更加深入的介绍这样大家不仅能知其然还能知其所以然。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/916079.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!