错误输出打印一条错误消息并不会创建configure。 AC_PREREQ([2.69]) #初始化,定义软件的基本信息,包括设置包的全称,版本号以及报告BUG时需要用的邮箱地址 AC_INIT([main], [1.0], [zhanghaozheng@jiehun.com.cn]) #用来侦测所指定的源码文件是否存在,来确定源码目录的有效性 AC_CONFIG_SRCDIR([main.c]) #用于生成config.h文件,以便autoheader使用 AC_CONFIG_HEADERS([config.h]) #添加宏AM_INIT_AUTOMAKE, 它是automake所必备的宏,也同前面一样,PACKAGE是所要产生软件套件的名称,VERSION是版本编号。 AM_INIT_AUTOMAKE(main,1.0) # Checks for programs. AC_PROG_CC # Checks for libraries. # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. # Checks for library functions. #创建输出文件。在`configure.in'的末尾调用本宏一次。 AC_OUTPUT([Makefile])   5.运行aclocal命令 生成 aclocal.m4 autom4te.cache两个文件   6.运行autoconf生成configure shell文件   7.运行autoheader生成config.h.in文件   8.下面开始准备运行automake命令生成makefile,不过在此之前要先写一个automake所需要的配置文件 Makefile.am   内容为: #automake提供了三种软件等级:foreign、gnu和gnits,让用 户选择采用,默认等级为gnu。在本例使用foreign等级,它只检测必须的文件 AUTOMAKE_OPTIONS=foreign #定义要产生的执行文件名。如果要产生多个执行文件,每个文件名用空格隔开 bin_PROGRAMS=main #main_SOURCES定义“main”这个执行程序所需要的原始文件。如果”main”这个程序是由多个原始文件所产生的, 则必须把它所用到的 所有原 始文件都列出来,并用空格隔开。 main_SOURCES=main.c   9.使用automake对其生成“configure.in”文件,在这里使用选项“—adding-missing”可以让automake自动添加有一些必需的脚本文件。运行 automake --add-missing 运行结果: [work@zhz study_c]$ automake --add-missing configure.in:17: installing `./install-sh' configure.in:17: installing `./missing' Makefile.am: installing `./depcomp' 10.运行configure ./configure 生成Makefile文件供make使用 11.运行make命令 生成main可执行文件 ./main 执行此文件输出结果 [work@zhz study_c]$ ./main auto create makefile! 12.大功告成,以后不用再对这些文件感到莫名其妙了。开源的世界就是强大。">
最火下载站首页
手机版
最火下载站
关注公众号
最火下载站

当前位置:首页 > 网络知识 > 编程开发 > C/C++开发> linux下自动产生c语言makefile操作步骤

linux下自动产生c语言makefile操作步骤

文章作者:网友投稿 发布时间:2012-11-09 14:39:25 来源:网络

写完c语言代码要部署到别的机器上,一个makefile文件是必不可少的,make命令编译c程序确实很方面,而makefile手动写 由于语法复杂 而且不同于高级语言,所以手动写出可正常使用的mak

写完c语言代码要部署到别的机器上,一个makefile文件是必不可少的,make命令编译c程序确实很方面,而makefile手动写 由于语法复杂 而且不同于高级语言,所以手动写出可正常使用的makefile成本太高,下面就介绍一下如何运用autoconf和automake两个开源工具自动生成makefile

  1.新建一个简单的c程序文件 main.c

  内容如下:

  1 #include
  2 int main()
  3 {
  4 printf("auto create makefile! ");
  5 return 0;
  6 }

  2.在shell下运行autosan命令来生成autoscan.log configure.scan两个文件

  3.重命名configure.scan为configure.in (mv configure.scan configure.in)

  4.修改configure.in 为符合自己条件的文件

自动生成修改前的内容为:

# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.69])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AC_CONFIG_SRCDIR([main.c])
AC_CONFIG_HEADERS([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_OUTPUT

修改后的为:

# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

#确保使用的是足够新的Autoconf版本。如果用于创建configure的Autoconf的版本比version 要早,就在标准>错误输出打印一条错误消息并不会创建configure。
AC_PREREQ([2.69])

#初始化,定义软件的基本信息,包括设置包的全称,版本号以及报告BUG时需要用的邮箱地址
AC_INIT([main], [1.0], [zhanghaozheng@jiehun.com.cn])

#用来侦测所指定的源码文件是否存在,来确定源码目录的有效性
AC_CONFIG_SRCDIR([main.c])

#用于生成config.h文件,以便autoheader使用
AC_CONFIG_HEADERS([config.h])

#添加宏AM_INIT_AUTOMAKE, 它是automake所必备的宏,也同前面一样,PACKAGE是所要产生软件套件的名称,VERSION是版本编号。
AM_INIT_AUTOMAKE(main,1.0)

# Checks for programs.
AC_PROG_CC

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

#创建输出文件。在`configure.in'的末尾调用本宏一次。
AC_OUTPUT([Makefile])

  5.运行aclocal命令 生成 aclocal.m4 autom4te.cache两个文件

  6.运行autoconf生成configure shell文件

  7.运行autoheader生成config.h.in文件

  8.下面开始准备运行automake命令生成makefile,不过在此之前要先写一个automake所需要的配置文件 Makefile.am

  内容为:

#automake提供了三种软件等级:foreign、gnu和gnits,让用 户选择采用,默认等级为gnu。在本例使用foreign等级,它只检测必须的文件
AUTOMAKE_OPTIONS=foreign
#定义要产生的执行文件名。如果要产生多个执行文件,每个文件名用空格隔开
bin_PROGRAMS=main
#main_SOURCES定义“main”这个执行程序所需要的原始文件。如果”main”这个程序是由多个原始文件所产生的,
则必须把它所用到的 所有原 始文件都列出来,并用空格隔开。
main_SOURCES=main.c

  9.使用automake对其生成“configure.in”文件,在这里使用选项“—adding-missing”可以让automake自动添加有一些必需的脚本文件。运行 automake --add-missing

运行结果:

[work@zhz study_c]$ automake --add-missing
configure.in:17: installing `./install-sh'
configure.in:17: installing `./missing'
Makefile.am: installing `./depcomp'

10.运行configure ./configure 生成Makefile文件供make使用

11.运行make命令 生成main可执行文件 ./main 执行此文件输出结果

[work@zhz study_c]$ ./main
auto create makefile!

12.大功告成,以后不用再对这些文件感到莫名其妙了。开源的世界就是强大。

上一篇: VC++ CMenu类中常用的函数及其功能

下一篇: c++输入任意空格数字求和代码

共有0条评论网友评论
游戏