您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“linux中怎么用autoscan和automake由makefile.am自動生成makefile”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“linux中怎么用autoscan和automake由makefile.am自動生成makefile”這篇文章吧。
如何使用autoconf和automake兩個工具來幫助我們自動地生成符合自由軟件慣例的Makefile,這樣就可以象常見的GNU程序一樣,只要使用“./configure”,“make”,“make instal”就可以把程序安裝到Linux系統中去了。
* 在開始使用autoconf和automake之前,首先確認你的系統安裝有GNU的如下軟件:
1. automake
2. autoconf
3. m4
4. perl
5. 如果你需要產生共享庫(shared library)則還需要GNU Libtool。
* 介紹方法之前,大家先記下autoconf和automake工作的幾個步驟,步驟解釋如下:
1、由你的源文件通過autoscanf命令生成configure.scan文件,然后修改
configure.scan文件并重命名為configure.in
2、由aclocal命令生成aclocal.m4
3、由autoconf命令生成configure
注:很重要!
如果這里緊接著直接進行第4步:
automake --add-missing:后會出現錯誤:configure.in:8:required file
`./config.h.in' not found
緊接著./configure后會出現 config.status: error: cannot find input file:
config.h
解決辦法:在automake --add-missing之前執行autoheader就ok了,一般網上的資料
很少有人提到這一步,大家也都是轉來轉去,所有會導致錯誤的發生。
4、編輯一個Makefile.am文件并由automake(automake --add-missing)命令生成
Makefile.in文件
5、./configure命令生成Makefile (后面有命令介紹)
實戰:我的源程序結構如下:總共兩個目錄:viaencode/ 、videolib/,
viaencode/下有兩個源文件和一個makefile.am文件: encodeapi.c 、viaenc.c 、 Makefile.am
videolib/下有四個頭文件: MP4EncApi.h、hw_lib.h、ViaApi.h 、itu.h,以及六個.a庫文件:libext_device_ctrl.a 、libhwdec.a、libhwenc.a、libitu.a、libuserdev.a、libvia.a。生成目標程序viaenc要下載到開板中運行。
按照如下步驟來自動生成Makefile吧:
1、進入viaencode/目錄,運行autoscan命令,命令如下:
# cd viaencode/
# autoscan
2、ls會發現多了一個configure.scan文件。修改此文件,在AC_INIT宏之后加入AM_INIT_AUTOMAKE(viaenc, 1.0),這里hello是你的軟件名稱,1.0是版本號,即你的這些源程序編譯將生成一個軟件viaenc-1.0版。“然后把 configure.scan文件的最后一行AC_OUTPUT宏填寫完整變成AC_OUTPUT(Makefile),表明autoconf和 automake最終將生成Makefile文件”,這樣的話會出錯,因為之前有一句AC_CONFIG_FILES([Makefile]),所以我沒變。最后把configure.scan文件改名為configure.in。
3、運行aclocal命令,ls會發現多了一個aclocal.m4文件。
4、然后運行autoconf命令,ls將發現生成了一個可執行的configure命令。
5、執行autoheader,前面已講過。
6、編輯一個Makefile.am文件,已有,文件內容如下:
bin_PROGRAMS = viaenc
viaenc_SOURCES = viaenc.c encodeapi.c
AM_CFLAGS = -I../videolib
LDADD = -L../videolib -lvia -litu -lhwdec -lext_device_ctrl -lhwenc - lpthread -luserdev
7、運行automake --add-missing命令。屏幕提示如下:
automake: configure.in: installing `./install-sh'
automake: configure.in: installing `./mkinstalldirs'
automake: configure.in: installing `./missing'
8、運行configure命令來生成一個Makefile文件,輸入./configure命令即可 9、因為應用程序是要下載到開發版中運行,所以必須修改交叉編譯工具。修改Makefile中的CC = gcc,改為指向自己的交叉編譯工具,CC=/usr/local/arm/gcc-3.4.4-glibc-2.3.6/bin/arm-linux-gcc。否則會出錯!!!
運用autoconf和automake的最大好處是,你的程序以源程序方式發布后,其它所有人只需要依次輸入./configure ,make,make install命令就可以把你的程序安裝在自己的電腦上運行了。所有符合GNU標準的UNIX/Linux都不需要再修改Makefile里的任何字符。
以上是“linux中怎么用autoscan和automake由makefile.am自動生成makefile”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。