c++语言生成文件,C++自动生成Makefile的详细过程

在Linux下编写大型的程序离不开Makefiel文件,摸索了两天终于搞明白了利用autoconf和automake自动生成Makefile的过程,在此做个笔记,以免忘记。下面开始自动生成Makefile的详细过程

第一步:用终端切换到到编译的文件夹目录下面:

------------------------------------------------

rychao@ubuntu:~/workspace/linux_learn$ cd rainol_client/

rychao@ubuntu:~/workspace/linux_learn/rainol_client$ ls

main.cpp  rainol_client.cpp  rainol_client.h

------------------------------------------------

有三个源文件,如上。

第二步:运行 autoscan , 自动创建两个文件: autoscan.log  configure.scan

------------------------------------------------

此时状态如下:

rychao@ubuntu:~/workspace/linux_learn/rainol_client$ autoscan

rychao@ubuntu:~/workspace/linux_learn/rainol_client$ ls

autoscan.log  configure.scan  main.cpp  rainol_client.cpp  rainol_client.h

------------------------------------------------

第三步:把文件名config.scan修改为config.in,查看其内容为

------------------------------------------------

rychao@ubuntu:~/workspace/linux_learn/rainol_client$ mv configure.scan configure.in

rychao@ubuntu:~/workspace/linux_learn/rainol_client$ cat configure.in

#                         -*- Autoconf -*-

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

AC_PREREQ([2.64])

AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])

AC_CONFIG_SRCDIR([rainol_client.cpp])

AC_CONFIG_HEADERS([config.h])

# Checks for programs.

AC_PROG_CXX

AC_PROG_CC

# Checks for libraries.

# Checks for header files.

AC_CHECK_HEADERS([arpa/inet.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h unistd.h])

# Checks for typedefs, structures, and compiler characteristics.

AC_HEADER_STDBOOL

# Checks for library functions.

AC_CHECK_FUNCS([bzero socket])

AC_OUTPUT

------------------------------------------------

解读以上的文件:

------------------------------------------------

#                    -

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值