Makefile.am和makefile.in生成Makefile


Makefile.am和makefile.in生成Makefile

很多時候,我們在網上下載的linux開源軟件都會遇到一個問題,就是源碼里面沒有直接的makefile,但是它有Makefile.ammakefile.in或者它有Makefile.amconfigure.in,這里就不詳細解釋他們直接的關聯,直接給出如何操作生成makefile

具體操作步驟如下:

1. 執行aclocal,產生aclocal.m4文件

aclocal是一個perl 腳本程序,它的定義是:

    aclocal -create aclocal.m4 by scanning configure.ac
  • 1

aclocal根據configure.in文件的內容,自動生成aclocal.m4文件。而aclocal.m4文件中,包含了生成configure文件所必須的宏。

2. 執行autoconf,生成configure文件

autoconf會根據configure.inaclocal.m4文件,生成configure文件。

3. 執行automake命令,產生Makefile.in

    automake --add-missing
  • 1

automake會根據Makefile.am文件產生一些文件,包含最重要的Makefile.in。前面所生成的configure,會根據Makefile.in文件,來生成最終的Makefile文件。

4. 執行configure命令,生成Makefile文件

這樣,就產生了編譯所需要的Makefile文件。運行make,即可編譯。

    ./configure
  • 1

如果我們有了Makefile.ammakefile.in那就可以執行第四步了。

這里在進行第四步的時候很可能會遇到一個問題:

error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details.
  • 1
  • 2

出現該情況是由於c++編譯器的相關package沒有安裝。 
以Ubuntu為例,解決如下:

#sudo apt-get install build-essential
  • 1

以RED HAT為例:

# yum install glibc-headers # yum install gcc-c++
  • 1
  • 2

這樣子有了makefile之后我們就可以愉快的make了!!

 

 

 

下載bsd0.06源碼找不到makefile


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM