Automake的錯誤彙總

2021-09-01 02:06:47 字數 2463 閱讀 4550

一、今天參照gnu hello,終於做出了hello makefile,

已經解決的問題:

1.configure.in:35: required file `config.h.in' not found 

answer:在執行automake --add-missing之前執行autoheader,生成config.h.in

2.makefile.am: required file `./news' not found

makefile.am: required file `./readme' not found

makefile.am: required file `./authors' not found

makefile.am: required file `./changelog' not found

answer:add a command,just like this: touch readme news authors changelog(即在根目錄新增)

3.還沒有解決的問題:

1.intl/dcigettext.c:129: warning: getwd is deprecated, use getcwd instead

configure.in: warning: missing am_gnu_gettext wanted by: intl/intl-compat.c:101

2.configure.in:35: required file `tests/hello.in' not found

3.[leizhige@localhost hello]$ chmod +x tests/hello(我把這條語句去掉了)

chmod: cannot access `tests/hello': no such file or directory

二、####make a makefile(using  gnu automake)####

test

|----- comm

|  |---- debug.c

|  `----debug.h

||---- doc

|  |--|-- test.conf

|  `--|-- test.man.3||

`---- src

|----test.c

`----test.h

cd /test

autoscan ->configure.scan

mv configure.scan->configure.in

ac_output([makefile comm/makefile src/makefile doc/makefile])

ac_prog_ranlib #because use the "lib"

aclocal

autoconf

create makefile.am,comm/makefile.am, src/makefile.am,doc/makefile.am

頂層的makefile.am內容如下

subdirs = doc comm src test 這裡注意把comm放在src前面

comm/makefile.am內容如下:

noinst_libraries=libcomm.a noinst指的是該庫不要install到prefix/lib目錄下,因為只是乙個臨時的libcomm_a_lib=debug.h debug.c 注意命名

# src/makefile.am內容如下

bin_programs=test

hello_sources=test.h test.c

doc/makefile.am內容如下

man_mans=test.man.3

sysconf_data=test.conf

autoheader

automake --add-missing --copy

./configure

make

####complete####

三、生成makefile的步驟:

1) 執行autoscan命令

2) 將configure.scan 檔案重新命名為configure.in,並修改configure.in檔案

3) 在project目錄下新建makefile.am檔案,並在子目錄下也新建makefile.am檔案

4) 在project目錄下新建news、 readme、 changelog 、authors檔案

touch news readme changelog authors

5) 將/usr/share/automake-1.8/目錄下的depcomp和complie檔案拷貝到本目錄下

6) 執行aclocal 命令

7) 執行autoconf命令

8) 執行autoheader命令

9) 執行automake --add-missing 命令

10) 執行./confiugre指令碼

11) 執行make

Mac OS Linux下automake的流程

參考 首先我們假設在這個目錄下已經有一些 了,例如main.c,我們使用automake來建立makefile,步驟如下。1 首先在目錄下執行autoscan。2 修改configure.scan為configure.in。3 編輯configure.in autoconf process this...

automake的使用方法

使用automake生成 makefile 檔案的 1 使用autoscanf 工具生成configure.scan 2 把configure.scan的內容複製到configure.in中,注意新增am init automake 3 使用aclocal命令生成configure.h.in檔案 4...

含有ObjectC的Automake操作

寫完基本的程式後 hello.m import int main int argc,const char argv step 1.autoscan 會產生 configure.scan step 2.mv configure.scan configure.in 修改configure.in的內容,並...