使用autotool编译C++项目基本流程

本文详细介绍了一个Unix程序从源码目录结构搭建到最终编译完成的全过程。首先介绍了如何设置基本目录结构,并在不同层级创建Makefile.am文件。接着展示了具体的源代码编写示例,该示例使用了lseek函数进行文件指针定位操作。然后,通过使用autoscan等工具自动生成配置文件,并逐步介绍了如何手动调整这些文件以适应特定需求。最后,提供了详细的命令序列,用于完成项目的自动配置与编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、设置基本目录结构

(1)创建源码目录,在顶层目录及src目录下分别创建Makefile.am

 

(2)编辑顶层Makefile.am

kf73381@ubuntu:~/workspace/UnixProgram/fileio$cat Makefile.am

AUTOMAKE_OPTIONS=foreign

SUBDIRS=src

 

(3)编辑下层Makefile.am

kf73381@ubuntu:~/workspace/UnixProgram/fileio$cat Makefile.am

AUTOMAKE_OPTIONS=foreign

SUBDIRS=src


二、编写源代码

#include<stdio.h>

int main(void)

{

       if (lseek(STDIN_FILENO, 0, SEEK_CUR) ==-1)

        printf("cannot seek\n");

       else

        printf("seek OK\n");

       exit(0);

}

 

三、使用autoscan生成配置文件

(1) 使用autoscan生成configure.scan配置文件

tkf73381@ubuntu:~/devel/hello$autoscan

 

(2)编辑configure.scan并冲命名为configure.ac(根据Autotool版本不同,命名可能不一样)

手动添加必须编辑某些默认参数,否则工具无法识别,另外需要手动添加AM_INIT_AUTOMAKE

tkf73381@ubuntu:~/workspace/UnixProgram/fileio$cat configure.scan

#                                              -*- Autoconf -*-

# Process thisfile with autoconf to produce a configure script.

 

AC_PREREQ([2.69])

AC_INIT([FileIO],[1.0], [TKF73381@com])

AM_INIT_AUTOMAKE

AC_CONFIG_SRCDIR([src/main.cpp])

AC_CONFIG_HEADERS([config.h])

 

# Checks forprograms.

AC_PROG_CXX

 

# Checks forlibraries.

 

# Checks forheader files.

 

# Checks fortypedefs, structures, and compiler characteristics.

 

# Checks for libraryfunctions.

 

AC_CONFIG_FILES([Makefile

                 src/Makefile])

AC_OUTPUT


四、依次执行如下命令序列编译工程

aclocal
autoheader
autoconf

automake--add-missing
./configure

make (这一步已经生成二进制文件)

makeinstall

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值