91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

GNU automake自動生成Makefile的方法及案例分析

發布時間:2021-12-23 18:52:49 來源:億速云 閱讀:385 作者:柒染 欄目:互聯網科技

今天就跟大家聊聊有關GNU automake自動生成Makefile的方法及案例分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

在GNU的世界里,存在Automake這樣的工具進行自動生成Makefile文件,automake是由Perl語言編寫的,必須與GNU autoconf一并使用,具體的生成過程請參看GNU automake的wikipedia中的右下角的圖,地址如下:http://en.wikipedia.org/wiki/Automake,由此圖可看到使用自動生成Makefile的工具使用的流程,步驟主要如下:

1、使用autoscan生成configure.scan
$ autoscan 
$ ls
autoscan.log  configure.scan  hello.c
$ aclocal
aclocal: `configure.ac' or `configure.in' is required
2、在上一步中直接執行aclocal時出現以上的提示,那么就要將生成的configure.scan修改為configure.ac或configure.in再進行aclocal的執行;
$ mv configure.scan configure.in 或 configure.ac 
$ ls
autoscan.log  configure.in  hello.c
3、執行aclocal
$ aclocal
$ ls
autom4te.cache  autoscan.log  configure.in  hello.c
4、執行autoheader
$ ls
autom4te.cache  autoscan.log  config.h.in  configure.in  hello.c
5、執行autoconf
$ autoconf 
$ ls
autom4te.cache  autoscan.log  config.h.in  configure  configure.in  hello.c
6、創建Makefile.am
$ vim Makefile.am 
$ cat Makefile.am 
bin_PROGRAMS=hello
hello_SOURCES=hello.c

關于Makefile.am中的具體內容的意思是說生成的可執行文件的名稱為hello,對應的源代碼為hello.c。
7、執行automake
$ automake
configure.in: no proper invocation of AM_INIT_AUTOMAKE was found.
configure.in: You should verify that configure.in invokes AM_INIT_AUTOMAKE,
configure.in: that aclocal.m4 is present in the top-level directory,
configure.in: and that aclocal.m4 was recently regenerated (using aclocal).
automake: no `Makefile.am' found for any configure output
automake: Did you forget AC_CONFIG_FILES([Makefile]) in configure.in?
這時出錯了,是說configure.in文件中的AM_INIT_AUTOMAKE沒有找到,只有修改configure.in文件后再從第三步進行重新執行,configure.in中的AC_INIT行下添加AM_INIT_AUTOMAKE(hello,1.0),或添加AM_INIT_AUTOMAKE,格式為AM_INIT_AUTOMAKE(package,version),再修改AC_OUTPUT為AC_OUTPUT(Makefile);

修改完configure.in文件后,再次執行2~7;

8、執行automake
$ automake
configure.in:6: required file `./install-sh' not found
configure.in:6:   `automake --add-missing' can install `install-sh'
configure.in:6: required file `./missing' not found
configure.in:6:   `automake --add-missing' can install `missing'
Makefile.am: required file `./INSTALL' not found
Makefile.am:   `automake --add-missing' can install `INSTALL'
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
Makefile.am: required file `./COPYING' not found
Makefile.am:   `automake --add-missing' can install `COPYING'
Makefile.am: required file `./depcomp' not found
Makefile.am:   `automake --add-missing' can install `depcomp'

按照提示創建缺少的文件,
$ touch NEWS README AUTHORS ChangeLog
再執行: $ automake --add-missing
沒有出錯的情況下再次執行automake;
$ ls
aclocal.m4      ChangeLog     configure.in  INSTALL      missing
AUTHORS         config.h.in   COPYING       install-sh   NEWS
autom4te.cache  config.h.in~  depcomp       Makefile.am  README
autoscan.log    configure     hello.c       Makefile.in
此時已經生成了生成Makefile文件的cinfigure腳本;
9、./configure生成Makefile
$ ls Makefile
Makefile
10、make得到可執行程序
$ make
make  all-am
make[1]: 正在進入目錄 `/home/ufo/hello'
gcc -DHAVE_CONFIG_H -I.     -g -O2 -MT hello.o -MD -MP -MF .deps/hello.Tpo -c -o hello.o hello.c
mv -f .deps/hello.Tpo .deps/hello.Po
gcc  -g -O2   -o hello hello.o  
make[1]:正在離開目錄 `/home/ufo/hello'

$ ./hello 
Hello World!

看完上述內容,你們對GNU automake自動生成Makefile的方法及案例分析有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

登封市| 赤峰市| 鄄城县| 抚远县| 同江市| 岳普湖县| 叶城县| 拉萨市| 乐昌市| 沙雅县| 会东县| 峡江县| 秀山| 永康市| 合阳县| 太仓市| 溆浦县| 江油市| 永宁县| 文化| 苗栗县| 延吉市| 柳江县| 潼南县| 塔城市| 静乐县| 东乡| 儋州市| 华容县| 永城市| 新乡市| 灌南县| 江华| 紫金县| 如皋市| 临夏县| 柳州市| 河津市| 榕江县| 静海县| 新余市|