国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

自動生存Makefile教程 autoscan aclocal autoconf autoheader automake configure

2024-06-28 13:26:16
字體:
來源:轉載
供稿:網友
自動生存Makefile教程 autoscan aclocal autoconf autoheader automake configure

LZ沒學過makefile的寫法,只知道使用tab。于是乎發現了autotools系列工具

基本流程是:autoscan、aclocal、autoconf、autoheader、automake、configure

(1) 使用autoscan命令自動生成configure.scan文件(configure.in原型)

muye@bupt:~/FFTC/FFTC$ cd test/muye@bupt:~/FFTC/FFTC/test$ lsComplex_Array.cpp  Complex.cpp  config.h  FFT.hComplex_Array.h    Complex.h    FFT.cpp   main.cppmuye@bupt:~/FFTC/FFTC/test$ autoscanmuye@bupt:~/FFTC/FFTC/test$ lsautoscan.log       Complex_Array.h  Complex.h  configure.scan  FFT.hComplex_Array.cpp  Complex.cpp      config.h   FFT.cpp         main.cppmuye@bupt:~/FFTC/FFTC/test$ 

(2)將configure.scan重命名為configure.in, 并做適當修改

#                                               -*- Autoconf -*-# PRocess this file with autoconf to produce a configure script.AC_PREREQ([2.68])#AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])AC_INIT(FFT, 1.0)AC_INIT_AUTOMAKE(FFT, 1.0)AC_CONFIG_SRCDIR([main.cpp])AC_CONFIG_HEADERS([config.h])# Checks for programs.AC_PROG_CXXAC_PROG_CC# Checks for libraries.# Checks for header files.AC_CHECK_HEADERS([stdlib.h])# Checks for typedefs, structures, and compiler characteristics.AC_TYPE_SIZE_T# Checks for library functions.AC_FUNC_MALLOCAC_CHECK_FUNCS([clock_gettime pow])AC_CONFIG_FILES([Makefile])AC_OUTPUT

說明:

  • 以"#"號開始的行為注釋
  • AC_PREREQ宏聲明本文要求的autoconf版本, 如本例中的版本 2.65
  • AC_INIT宏用來定義軟件的名稱和版本等信息, 在本例中省略了BUG-REPROT-ADDRESS, 一般為作者的E-mail
  • AM_INIT_AUTOMAKE是手動添加的, 它是automake所必備的宏, 也同前面一樣, PACKAGE是所要產生軟件套件的名稱,VERSION是版本編號.
  • AC_CONFIG_SCRDIR宏用來偵測所指定的源碼文件是否存在, 來確定源碼目錄的有效性. 在此處指當前目錄下hello.c
  • AC_CONFIG_FILES宏用于生成相應的Makefile文件.

(3) 運行aclocal命令,生成"aclocal.m4"文件

(4) 運行autoconf命令生成configure可執行文件

(5) 運行autoheader命令, 生成config.h.in文件

(6) 新建Makefile.am,內容如下:

AUTOMAKE_OPTIONS=foreignbin_PROGRAMS=ffthello_SOURCES=fft.cpp Complex_Array.h FFT.h Complex.cppmain.cpp Complex_Array.cpp Complex.h FFT.cpp

說明:

  • 其中的AUTOMAKE_OPTIONS為設置automake的選項. 由于GNU對自己發布的軟件有嚴格的規范, 比如必須附帶許可證聲明文件COPYING等, 否則automake執行時會報錯. automake提供了3中軟件等級:foreign, gnu和gnits, 供用戶選擇. 默認級別是gnu. 在本例中, 使用了foreign等級, 它只檢測必須的文件.
  • bin_PROGRAMS定義要產生的執行文件名. 如果要產生多個執行文件, 每個文件名用空格隔開
  • hello_SOURCES 定義"hello"這個可執行程序所需的原始文件. 如果"hello"這個程序是由多個源文件所產生的, 則必須把它所用到的所有源文件都列出來, 并用空格隔開. 如果要定義多個可執行程序, 那么需要對每個可執行程序建立對應的file_SOURCES.

(7) 運行automake命令, 生成Makefile.in文件

automake --add-missing

(8)運行configure, 生成Makfefile文件


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沂水县| 大竹县| 泸溪县| 安义县| 五莲县| 康乐县| 巨鹿县| 凌海市| 特克斯县| 富宁县| 凤台县| 雷山县| 双城市| 东源县| 渭源县| 乌兰浩特市| 东阳市| 南安市| 阿合奇县| 宝丰县| 兴义市| 丁青县| 宁南县| 兴安县| 天全县| 清徐县| 周至县| 新晃| 尼木县| 永安市| 绿春县| 大兴区| 靖西县| 河源市| 武城县| 镶黄旗| 凤台县| 江津市| 耒阳市| 桓仁| 澄城县|