cmake automoc,automake autoconf
cmake和autoconf automake的比较。网
cmake和autoconf automake的比较
分类:
C
2012-05-07 17:03
69人阅读
评论(0)
收集
首先,两者相互比较没有太大意义。都是生成makefile文件的工具。Cmake出现的比较晚,解决了很多自动工具的问题。Autotools是一个灵活性很强的工具集,但是因为步骤太多,配置复杂,所以产生了很多替代品,cmake就是其中的佼佼者。当然,其他很多替代品都有直接制作而不是制作文件的功能。看到下图是不是有点头晕?
还好是“八股文”,所有步骤都一样。
运行自动扫描命令
将configure.scan文件重命名为configure.in,并修改configure.in文件。
在项目目录中创建新的Makefile.am文件,并在核心和shell目录中创建新的makefile.am文件。
在项目目录中创建新的新闻、自述文件、变更日志和作者文件。
复制/usr/share/automake-1中的depcomp和complie文件。X/directory到这个目录。
运行本地命令
运行autoconf命令
运行automake -a命令
运行。/confiugre脚本
我们再来看看cmake的步骤:
编写CMakeLists.txt并运行cmake命令9到2。当然不是分数而是步数。
然后让我们看看他们的主要工作,他们的配置文件:
Atuoconfig的配置文件configure.ac是由autosan生成的,我们只需要修改即可。我们需要从头开始手动编写autoconfig的配置文件Makefile.am。Cmake的配置文件CMakeLists.txt需要手动编写。当然,cmake提供gui配置工具给大家使用;我们再来看看他们简介的内容。这是我们比较的重点,因为这是我们实际使用的关键步骤:
Autotoolscmake变量定义名称=.设置(名称, .)环境检测AC_INIT。
测试程序
交流编程控制
测试函数库
AC_CHECK_LIB([pthread],[pthread_rwlock_init])
交流程序库
测试头文件
测试类型定义
测试结构
测试编译器特性
测试库函数
测试系统调用
AC _ output find _ library(lib libname path llist)
find_package(包名)
find_path(变量名称路径列表)
find_program(var name pathlist)子目录SUBDIRS=add _子目录(list)可执行文件bin_PROGRAMS=binname
binname_SOURCES=
binname_LDADD=
binname_CFLAGS=
binname _ LD flags=add _ executable(binname $ { sources })
Target _ link _ libraries (bin名称库列表)动态库lib_LIBRARIES=libname.so
libname _ sources=add _ library(libname shared $ { source })静态库lib_LIBRARIES=libname.a
libname _ a _ sources=add _ library(libname static $ { source })头文件包括=
include_HEADES=
或者cflags=-I include _ directory(list)源代码搜索aux _ source _ directories(。列表)从属库LIBS=
Add=target _ link _ libraries (bin名称库列表)标志CFLAGS=
LDFLAGS=set(CMAKE_C_FLAGS.)libtoolAC_PROG_LIBTOOL
lib_LTLIBRARIES=name.la
Name_la_SOURCES=安装设置安装(目标目标.
[[存档库运行时][目标
目录][权限权限.]
[配置[调试发布.]]
[组件组件] [可选]] [.])其他文件EXTRA_DISTinstall(FILES文件.)
install的条件语句(目录目录.)使用Make的条件语句。
如果()
endifif(我的)
其他(我的)
endif(我的)
while(条件)
Endwhile(condition)执行外部命令exec_program(commd)子模块include()信息输出messge(STATUS messge )项目(name)。我就知道这么多,你可以帮我纠正一下。与autotool相比,cmake确实很好用,包括KDE在内的很多大型项目也在使用cmake。但是,autotools的使用率仍然高于cmake。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。