標籤:
在編譯一個軟體的時候,在 ./configure 和 make 之後可能會出現如下錯誤:
[plain] view plaincopyprint?
- libtool: Version mismatch error. This is libtool 2.4.2 Debian-2.4.2-1ubuntu1, but the
- libtool: definition of this LT_INIT comes from libtool 2.4.
- libtool: You should recreate aclocal.m4 with macros from libtool 2.4.2 Debian-2.4.2-1ubuntu1
- libtool: and run autoconf again.
- make[5]: *** 1 Error 63
解決方案很簡單:
運行 autoreconf -ivf 即可。
另:
make clean僅僅是清除之前編譯的可執行檔及設定檔。
而make distclean要清除所有產生的檔案。
Makefile
在符合GNU Makefiel慣例的Makefile中,包含了一些基本的預先定義的操作:
make
根據Makefile編譯原始碼,串連,產生目標檔案,可執行檔。
make clean
清除上次的make命令所產生的object檔案(尾碼為“.o”的檔案)及可執行檔。
make install
將編譯成功的可執行檔安裝到系統目錄中,一般為/usr/local/bin目錄。
make dist
產生髮布軟體包檔案(即distribution package)。這個命令將會將可執行檔及相關檔案打包成一個tar.gz壓縮的檔案用來作為發布軟體的軟體包。
它會在目前的目錄下產生一個名字類似“PACKAGE-VERSION.tar.gz”的檔案。PACKAGE和VERSION,是我們在configure.in中定義的AM_INIT_AUTOMAKE(PACKAGE, VERSION)。
make distcheck
產生發布軟體包並對其進行測試檢查,以確定發布包的正確性。這個操作將自動把壓縮包檔案解開,然後執行configure命令,並且執行make,來確認編譯不出現錯誤,最後提示你軟體包已經準備好,發行就緒了。
make distclean類似make clean,但同時也將configure產生的檔案全部刪除掉,包括Makefile。
libtool: Version mismatch error 解決