当前位置: 首页 > news >正文

网站建设学生选课课程设计报告常州网站建设公司哪个好

网站建设学生选课课程设计报告,常州网站建设公司哪个好,网页制作工具分为哪两类,慈溪网站建设网站推广Makefile固然可以帮助make完成它的使命#xff0c;但要承认的是#xff0c;编写Makefile确实不是一件轻松的事#xff0c;尤其对于一个较大的项目而言更是如此。那么#xff0c;有没有一种轻松的手段生成Makefile而同时又能让我们享受make的优越性呢#xff1f;本节要讲au…Makefile固然可以帮助make完成它的使命但要承认的是编写Makefile确实不是一件轻松的事尤其对于一个较大的项目而言更是如此。那么有没有一种轻松的手段生成Makefile而同时又能让我们享受make的优越性呢本节要讲autotools系列工具正是为此而设的它只需用户输入简单的目标文件、依赖文件、文件目录等就可以轻松地生成Makefile了这无疑是广大用户的所希望的。另外这些工具还可以完成系统配置信息的收集从而可以方便地处理各种移植性的问题。也正是基于此现在Linux上的软件开发一般都用autotools来制作Makefile。autotools使用流程正如前面所言autotools是系列工具读者首先要确认系统是否装了以下工具可以用which命令进行查看。 ·  aclocal ·  autoscan ·  autoconf ·  autoheader ·  automake 使用autotools主要就是利用各个工具的脚本文件以生成最后的Makefile。其总体流程是这样的 ·  使用aclocal生成一个“aclocal.m4”文件该文件主要处理本地的宏定义 ·  改写“configure.scan”文件并将其重命名为“configure.in”并使用autoconf文件生成configure文件。 接下来将通过一个简单的hello.c例子来熟悉autotools生成makefile的过程. 1autoscan 它会在给定目录及其子目录树中检查源文件若没有给出目录就在当前目录及其子目录树中进行检查。它会搜索源文件以寻找一般的移植性问题并创建一个文件“configure.scan”该文件就是接下来autoconf要用到的“configure.in”原型。如下所示 [rootlocalhost automake]# autoscan autom4te: configure.ac: no such file or directory autoscan: /usr/bin/autom4te failed with exit status: 1 [rootlocalhost automake]# ls autoscan.log  configure.scan  hello.c 如上所示autoscan首先会尝试去读入“configure.ac”同configure.in的配置文件文件此时还没有创建该配置文件于是它会自动生成一个“configure.in”的原型文件“configure.scan”。 2autoconf configure.in是autoconf的脚本配置文件它的原型文件“configure.scan”如下所示 #                                               -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) #The next one is modified by sunq #AC_INIT(FULL-PACKAGE-NAME,VERSION,BUG-REPORT-ADDRESS) AC_INIT(hello,1.0) # The next one is added by sunq AM_INIT_AUTOMAKE(hello,1.0) AC_CONFIG_SRCDIR([hello.c]) AC_CONFIG_HEADER([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]) AC_OUTPUT 下面对这个脚本文件进行解释 ·  以“#”号开始的行为注释。 ·  AC_PREREQ宏声明本文件要求的autoconf版本如本例使用的版本2.59。 ·  AC_INIT宏用来定义软件的名称和版本等信息在本例中省略了BUG-REPORT-ADDRESS一般为作者的e-mail。 ·  AM_INIT_AUTOMAKE是笔者另加的它是automake所必备的宏也同前面一样PACKAGE是所要产生软件套件的名称VERSION是版本编号。 ·  AC_CONFIG_SRCDIR宏用来侦测所指定的源码文件是否存在来确定源码目录的有 效性。在此处为当前目录下的hello.c。 ·  AC_CONFIG_HEADER宏用于生成config.h文件以便autoheader使用。 ·  AC_CONFIG_FILES宏用于生成相应的Makefile文件。 ·  中间的注释间可以添加分别用户测试程序、测试函数库、测试头文件等宏定义。 接下来首先运行aclocal生成一个“aclocal.m4”文件该文件主要处理本地的宏定义。如下所示 [rootlocalhost automake]# aclocal 再接着运行autoconf生成“configure”可执行文件。如下所示 [rootlocalhost automake]# autoconf [rootlocalhost automake]# ls aclocal.m4  autom4te.cache  autoscan.log  configure  configure.in  hello.c 3autoheader 接着使用autoheader命令它负责生成config.h.in文件。该工具通常会从“acconfig.h”文件中复制用户附加的符号定义因此此处没有附加符号定义所以不需要创建“acconfig.h”文件。如下所示 [rootlocalhost automake]# autoheader 4automake 这一步是创建Makefile很重要的一步automake要用的脚本配置文件是Makefile.am用户需要自己创建这个文件。之后automake工具将其转换成Makefile.in。     在该例中创建的文件为Makefile.am如下所示 AUTOMAKE_OPTIONSforeign bin_PROGRAMS hello hello_SOURCES hello.c hello.h 下面对该脚本文件的对应项进行解释。 ·  其中的AUTOMAKE_OPTIONS为设置automake的选项。由于GNU在第1章中已经有所介绍对自己发布的软件有严格的规范比如必须附带许可证声明文件COPYING等否则automake执行时会报错。automake提供了三种软件等级foreign、gnu和gnits让用户选择采用默认等级为gnu。在本例使用foreign等级它只检测必须的文件。 ·  bin_PROGRAMS定义要产生的执行文件名。如果要产生多个执行文件每个文件名用空格隔开。 ·  hello_SOURCES定义“hello”这个执行程序所需要的原始文件。如果”hello”这个程序是由多个原始文件所产生的则必须把它所用到的所有原始文件都列出来并用空格隔开。例如若目标体“hello”需要“hello.c”、“sunq.c”、“hello.h”三个依赖文件则定义hello_SOURCEShello.c sunq.c hello.h。     接下来可以使用automake对其生成“configure.in”文件在这里使用选项“—adding-missing”可以让automake自动添加有一些必需的脚本文件。如下所示 [rootlocalhost automake]# automake --add-missing configure.in: installing ./install-sh configure.in: installing ./missing Makefile.am: installing depcomp [rootlocalhost automake]# ls aclocal.m4      autoscan.log  configure.in  hello.c     Makefile.am  missing autom4te.cache  configure     depcomp    install-sh  Makefile.in  config.h.in 可以看到在automake之后就可以生成configure.in文件。 5运行configure 在这一步中通过运行自动配置设置文件configure把Makefile.in变成了最终的Makefile。如下所示 [rootlocalhost automake]# ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build enVironment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for Gcc... Gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether Gcc accepts -g... yes checking for Gcc option to accept ANSI C... none needed checking for style of include used by make... GNU checking dependency style of Gcc... Gcc3 configure: creating ./config.status config.status: creating Makefile config.status: executing depfiles commands 可以看到在运行configure时收集了系统的信息用户可以在configure命令中对其进行方便地配置. 在./configure的自定义参数有两种一种是开关式--enable-XXX或--disable-XXX另一种是开放式即后面要填入一串字符--with-XXXyyyy参数。读者可以自行尝试其使用方法。另外读者可以查看同一目录下的”config.log”文件以方便调试之用。 到此为止makefile就可以自动生成了。回忆整个步骤用户不再需要定制不同的规则而只需要输入简单的文件及目录名即可这样就大大方便了用户的使用。下面的图3.9总结了上述过程 图3.9  autotools生成Makefile流程图 autotools生成的Makefile除具有普通的编译功能外还具有以下主要功能: 1make 键入make默认执行”make all”命令即目标体为all其执行情况如下所示 [rootlocalhost automake]# make if Gcc -D PACKAGE_NAME\\ -DPACKAGE_TARNAME\\ -DPACKAGE_VERSION\\ -DPACKAGE_STRING\\ -DPACKAGE_BUGREPORT\\ -DPACKAGE\hello\ -DVERSION\1.0\  -I. -I.     -g -O2 -MT hello.o -MD -MP -MF .deps/hello.Tpo -c -o hello.o hello.c; \ then mv -f .deps/hello.Tpo .deps/hello.Po; else rm -f .deps/hello.Tpo; exit 1; fi Gcc  -g -O2   -o hello  hello.o 此时在本目录下就生成了可执行文件“hello”运行“./hello”能出现正常结果如下所示 [rootlocalhost automake]# ./hello Hello everyone! 2make install 此时会把该程序安装到系统目录中去如下所示 [rootlocalhost automake]# make install if Gcc -DPACKAGE_NAME\\ -DPACKAGE_TARNAME\\ -DPACKAGE_VERSION\\ -DPACKAGE_STRING\\ -DPACKAGE_BUGREPORT\\ -DPACKAGE\hello\ -DVERSION\1.0\  -I. -I.     -g -O2 -MT hello.o -MD -MP -MF .deps/hello.Tpo -c -o hello.o hello.c; \ then mv -f .deps/hello.Tpo .deps/hello.Po; else rm -f .deps/hello.Tpo; exit 1; fi Gcc  -g -O2   -o hello  hello.o make[1]: Entering directory /root/workplace/automake test -z /usr/local/bin || mkdir -p -- /usr/local/bin /usr/bin/install -c hello /usr/local/bin/hello make[1]: Nothing to be done for install-data-am. make[1]: LeaVing directory /root/workplace/automake 此时若直接运行hello也能出现正确结果如下所示 [rootlocalhost automake]# hello Hello everyone! 3make clean 此时make会清除之前所编译的可执行文件及目标文件object file, *.o如下所示 [rootlocalhost automake]# make clean test -z hello || rm -f hello rm -f *.o 4make dist 此时make将程序和相关的文档打包为一个压缩文档以供发布如下所示 [rootlocalhost automake]# make dist [rootlocalhost automake]# ls hello-1.0-tar.gz hello-1.0-tar.gz 可见该命令生成了一个hello-1.0-tar.gz的压缩文件。 由上面的讲述不难看出autotools确实是软件维护与发布的必备工具也鉴于此如今GUN的软件一般都是由automake来制作的。
http://www.zqtcl.cn/news/210916/

相关文章:

  • 工程网站模板制作教程具有价值的专业网站建设平台
  • 用wex5可以做网站吗邯郸seo快速排名
  • 高端品牌网站建设兴田德润可信赖网络运营方案怎么写
  • 新公司网站建设合肥关键词排名优化
  • 网站排名优化+o+m西安网络推广平台公司
  • 找网站建设公司需要注意什么常州网站建设公司好么
  • 不备案的网站很慢网站双线主机优势
  • 南京电子商务网站建设23个营销专业术语
  • 建设银行官网官方网站学习网页制作的网站
  • 开发网站需要什么硬件今年最流行的装修风格
  • 门户网站建设中标结果百度资讯指数
  • 定制企业网站开发公司网站建设的6个基本步骤
  • 网站建设与维护案列网站作品怎么做
  • 茂名放心营销网站开发seo收费
  • 旅游网站品牌建设本地使用宝塔安装wordpress
  • 专门做外链的网站制作论坛类网站模板免费下载
  • 靖江建设行业协会网站投资做网站
  • 做网站视频背景潍坊网站制作建设
  • 深圳市官网网站建设哪家好百度抓取网站登录
  • 免费做cpa单页网站友情链接买卖代理
  • 免费网站建站排名中国最大的软件公司
  • 码云pages做静态网站广西建设培训网
  • 建设网站需要花钱吗网站seo方案策划书
  • 德阳网站怎么做seo陈木胜个人资料
  • 电子规划书商务网站建设wordpress主机推荐
  • wordpress设置多站点html5开发手机app
  • 移动互联和网站开发哪个好做推广便宜的网站有哪些
  • 极速网站建设定制价格微信公众号运营助手
  • .net制作网站开发教程在线修图编辑器
  • 哪些网站可以做详情页聊城高新区建设局网站