如果工程的源码量比较大,文件比较多,那么通过AutoMake管理工程绝对是一个好的选择。下面展示如何一步一步创建属于自己的AutoMake工程
虽然现在cmake,qmake 或者 ide的功能越来越强大,也越来越简洁。但是在日常使用中,庞大的开源库,autoconfig 还是占据大半壁江山。
linux环境下,当项目工程很大的时候,编译的过程很复杂,所以需要使用make工具,自动进行编译安装,但是手写makefile文件比较复杂,所幸在GNU的计划中,设计出了一种叫做Autoconf/Automake的工具,用来自动生成makefile文件,为编译和安装程序提供了一个方便快捷的入口。
Linux中的configure/make/make install 到底在做些什么
参考英文:https://facebook.github.io/watchman/docs/install.html
一样新的东西的由来,往往因为之前的东西用的很不爽,然后更具弊端创造出更加容易使用的东西,比如在大型的项目中,如Linux,他是通过Makefile的方式进行编译。但是,Makefile复杂的语法结构,难于让人领会。在一个很大的项目中,维护Makefile是一个非常头疼的烦恼事。于是一个新的产物Autotools就出来了,他用来生成复杂的Makefile,很大程度降低了我们的开发难度。
automake工具会根据config.in中的参量把Makefile.am转换成Makefile.in文件。在使用Automake之前,要先手动建立Makefile.am文件。 Makefile.am的内容如下:
Makefile的 基本结构不是 很复杂,但当一个程序开发人员开始写Makefile时,经常会怀疑自己写的 是 否符合惯例,而且自己写的 Makefile经常和自己的 开发环境相关联,当系统环境变量或路径发生了变化后,Makefile可能还要跟着修改.这样就造成了手工书写Makefile的 诸多问题,automake恰好能很好地帮助我们解决这些问题. 使用automake,程序开发人员只需要写一些简单的 含有预定义宏的 文件,由autoconf根据一个宏文件生成configure,由automake根据另一个宏文件生成Makefile.in,再使用configure依据Makefile.in来生成一个符合惯例的 Makefile.下面我们将详细介绍Makefile的 automake生成方法.
在Linux下经常要安装部署一些软件包或者工具,拿到安装包之后一看,简单,configure,make, make install即可搞定。 有时候我就在想,这个configure,make ,make install是什么意思呢,configure是测试存在的特性,然后make开始编译,make install生成相应的可执行文件。但是一个工具只是记住了其中的拼写部分或是基本的概念,但是对于原理知之甚少,也是需要补补了。 几个构建编译隐藏的命令 要先说这个编译安装过程,使用命令ac
在Linux下经常要安装部署一些软件包或者工具,拿到安装包之后一看,简单,configure,make, make install即可搞定。
扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形;
Autoconf是一个用于生成shell脚本的工具,可以自动配置软件源代码以适应多种类似POSIX的系统。为了让你的软件包在所有的不同系统上都可以进行编译。
本系列文章均翻译自Autoconf官方文档:Autoconf Manual,github同步项目:question
① 视频数据回顾 : 手机使用 Camera 采集 NV21 格式的图像数据 , x264 编码库将图像数据编码成 H.264 格式的视频数据 ;
读写操作会打印出当前xlator的名称和下一个xlator的名称,同时会在日志中打印操作类型,inod,gfid的信息
作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了.
作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。
.ibtoolize: AC_CONFIG_MACRO_DIR([./aclocal]) conflicts with ACLOCAL_AMFLAGS=-I ./aclocal 执行libtoolize遇到上面提示的错误时,可能是因为configure.ac和Makefile.am文件是dos格式导致的,使用dos2unix转换一下后再执行,问题可能就解决了。 如果是在windows上使用git,建议设置不转换文件格式: git config --global core.autocrlf false git config --global core.safecrlf true git config --global core.eol lf 或者手工直接编辑.gitconfig文件,该文件位于用户主目录下,如果为Windows7,用户名为zhangsan,则为:C:\Users\zhangsan\.gitconfig
cpu_bit=$(shell getconf LONG_BIT) ifeq ($(cpu_bit),64) MY_CXXFLAGS= else MY_CXXFLAGS=-march=pentium4 endif x:: @echo $(cpu_bit) @echo $(MY_CXXFLAGS)
安装软件包 安装daq-2.0.6 [root@h101 snort]# ll total 6560 -rw-r--r-- 1 root root 514687 Oct 28 13:53 daq-2.0.6.tar.gz -rw-r--r-- 1 root root 6198052 Oct 28 13:53 snort-2.9.7.6.tar.gz [root@h101 snort]# tar -zxvf daq-2.0.6.tar.gz daq-2.0.6/ daq-2.0.6/ChangeLog d
CentOS 7上PHP默认是以apache或者nobody的身份运行的,这种方式下由于PHP运行需要的权限比较大,会有安全隐患,还可能会受到服务器其他用户影响。
今天特别花1688在51buy.com上买了台同方的笔记本用于mooon的开发,先是安装了Fedora,觉得不好,想安装openSuSE,但发现安装包太大,最后仍选择了ubuntu 12.04,默认没有安装automake等工具,按提示逐一进行了安装,遇到如下这个错误时,表示libtool没有安装:
主要参考了两篇文章,使用的安装版本为 coreseek-4.1-beta.tar 文章一,原地址为:http://zhan.renren.com/itbegin?gid=360288849803348
在Linux下,编译和链接需要用Makefile,而写好一个Makefile可不容易,写出一个规范的Makefile更是麻烦。我们可以利用autoconf来生成一个Makefile,尤其在大型工程里,能省去很多麻烦。
来源:AUTOTOOLS – John Calcote or AUTOTOOLS – 亚马逊
Murray Cumming <murrayc@usa.net> Chen Chih-Chia <pigfoot@CDPA.nsysu.edu.tw>
WebAssembly 为前端开发带来了新的可能性,一些原本由 C/C++ 开发的库经过很简单的改造,就可以编译到 WebAssembly,在 Node.js、浏览器端使用。
root@h101 src# tar -zxvf memcached-1.4.24.tar.gz
对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》
点击上方蓝字可直接关注!方便下次阅读。如果对你有帮助,麻烦点个在看或点个赞,感谢~
通用网关接口(Common Gateway Interface、CGI)描述了客户端和服务器程序之间传输数据的一种标准,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。CGI独立于任何语言的,CGI 程序可以用任何脚本语言或者是完全独立编程语言实现,只要这个语言可以在这个系统上运行。Unix shell script、Python、Ruby、PHP、 perl、Tcl、 C/C++和 Visual Basic 都可以用来编写 CGI 程序。
对VLC突然来了好奇心,所以像研究一下VLC,但是首先要编译一下VLC,将应用编译出来然后测试才能更顺利; 在网上找了一下,几乎没有可用的,算了,看别人转帖的blog还不如自己琢磨了,然后就参考官方文档,自己仔细研究一下,通过了。 在最开始编译的时候遇到了问题,编译不过去,参考了官方文档后发现也会报错,后来尝试了一下,凑巧通过了,记录一下 系统基本信息:
解压安装 解压安装命令 使用下列命令进行解压安装 tar -zxvf sqlite-autoconf-3110100.tar.gz cd sqlite-autoconf-3110100 ./configure --prefix=/usr/local/sqlite3.11 make make install 详细安装过程 [root@h102 sqlite]# tar -zxvf sqlite-autoconf-3110100.tar.gz sqlite-autoconf-3110100/ sqlite-
google mock(以下简称gmock)也是google的开源项目,它能够在测试中起到“打桩”的作用。举个例子,有A模块需要调用B模块,需要对A模块进行测试,但是B模块没有实现,那么就可以利用gmock对B模块进行打桩,来模拟B接口的实现。本文主要介绍gmock环境的搭建,不涉及具体使用。
Zabbix是一个基于web界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
源码安装:配置(configure)、编译(make)、安装(make install),所有操作中间错误可以忽略,最后段末尾统一报错。 ####1.配置 configure:生成Makefile的shell脚本 文件结构如下: <文件夹> |-configure.in |-Makefile.am |-acconfig.h |-<源码文件> |-tt.c |-qq.c |-qq.h |-Makefile.am 其中configure.in作为./configure的配置输入;makefile.am通过automake生成makefile.in再由./configure生成makefile;acconfig.h由autoheader生成config.h.in再由./configure生成config.h configure.h使用autoconf和automake命令的shell脚本,可以通过autoscan自动生成或手写 acconfig.h包含了configure.in中未定义的宏 autoscan–>autoheader–>aclocal–>automake|autoconf
google test(以下简称gtest)是谷歌的开源C++单元测试框架,用来做c/c++的单元测试比较方便。下面对于它在linux下的使用环境搭建做简单介绍。
A dataflow diagram for the autoreconf utility
本文不一定适合比较老版本的Linux,如果只关心使用,请直接看“总结”,本文主要针对CentOS,其它Linux发行版本类似,但细节可能有出入,比如重启服务可能不是用systemctl,而是service等。
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
[root@it3246 ~]# cat/etc/RedHat-release CentOS release 6.5(Final)
今天在虚拟机下在学习scapy的东西,其中一个例子中需要安装一个python的visual模块,期间报了N多的错误,一个个解决其中的依赖问题,到后面被卡住了
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/83088803
王通老师在他的 "基因学苑" 公众号,发表过一篇《命令行的“迅雷”,提升百倍以上下载速率》的文章,给我们简单介绍了 axel 这个命令行下多线程下载的利器。本公众号也有幸转载过,但在实际使用中 axel 还是有几点不为人知小秘密,今天来聊一下。
尝试通过源码自己编译 Python,使用的系统是 Ubuntu14.04 LTS。
Debian 9发布有一段时间了,FreeSWITCH最新的代码也做了适配,只是还没有发布的包。
编译的时候报错,解决方法如下 第一步 : autoscan 用 autoscan 产生一个 configure.in 的原型,执行autoscan 后会产生一个configure.scan 的文件,可以用它作为 configure.in文件的蓝本。 第二步: aclocal autoconf 执行 aclocal 和 autoconf ,分別会产生 aclocal.m4 及 configure 两个文件 然后执行: automake –add-missing 最后执行: ./configure
开发项目在嵌入式平台上使用MiniGui作为用户界面开发工具,在工作之余准备在ubuntu14.04上搭建一个测试环境,这样代码测试起来比较方便。
在提示给出的网址中下载automake软件包,依次 ./configure make make install后,错误消失。
领取专属 10元无门槛券
手把手带您无忧上云