日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

configure: error: no termcap library found

發布時間:2024/2/28 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 configure: error: no termcap library found 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

交叉編譯源碼包?

在Centos6.6 上交叉編譯?gdb-7.9.tar.gz,出現如標題 所示錯誤。


首先去官方網站下載gdb的源碼包,我下載的gdb-7.9.tar.gz版本的源碼包,解壓開來,進入到源碼包的根目錄下。對于一個源碼包,拿到手里首先要閱讀的就是README,然后看一下INSTALL文件,這個文件里編譯源碼包的步驟。

基本上所有的源碼包都是三步,configure,make,make install。

首先執行的就是./configure,這是一個配置的腳本。后面2步用到的很多很多配置都是在這里進行的,比如說編譯所用的工具之類,所以交叉編譯必須要配置這里,可以執行./configure --help查看后面參數的類型,對于交叉編譯,主要就是有三個參數:--build --host --target。

System types:

? --build=BUILD???? configure for building on BUILD [guessed]

? --host=HOST?????? cross-compile to build programs to run on HOST [BUILD]

--target=TARGET?? configure for building compilers for TARGET [HOST]

--build參數是指你編譯源碼包的系統環境,可以通過查看系統的環境變量來獲取,執行set命令可以看到? MACHTYPE=i686-pc-linux-gnu,則--build=i686-pc-linux-gnu。

--host參數指的是編譯出來的工具運行在什么系統上,我編譯出來的gdb是要運行在龍芯1b的開發板上,因此環境就是mipsel-linux的環境,如果你的是arm的開發板,就是arm-linux的環境。

--target參數指的是編譯出的工具所要操作的系統,這個必須要理解明白,比如說我編譯出來的gdb要在我的電腦上運行,但是要調試交叉編譯出來的mips指令集的程序,這個時候呢,--target就要是mipsel-linux,但是--host是i686-pc-linux-gnu。

綜上所述,交叉編譯第一條命令應該是:

./configure --build=i686-pc-linux-gnu --host=mipsel-linux --target=mipsel-linux --prefix=/install.

第二步就是執行make,交叉編譯gdb的時候make會出現下面這樣一個錯誤:

configure: error: no termcap library found

? make[1]: *** [configure-gdb] Error 1

? make: *** [all] Error 2??? 很明顯這是缺少一個termcap庫,這是一個終端數據庫,可以從官網下載一個版本的源碼包,這里需要注意的是這個源碼包也許要交叉編譯,那是因為這個是你交叉編譯gdb需要的庫,在configure時可以指定--prefix指定安裝目錄,交叉編譯安裝完成后必須要將這個庫放在交叉編譯工具gcc(我的是mipsel-linux-gcc)的默認搜索庫目錄下。到你的交叉編譯工具目錄下,怎樣查看默認搜索庫的目錄在哪里呢,執行下面的命令:

XXXXXXX-linux-gcc -print-file-name libc.a

就會顯示出交叉編譯工具所使用的庫的默認搜索目錄了。

然后將termap.h拷貝到默認目錄下的include下,將libtermcap.a拷貝到默認目錄下的lib下。

這樣make時XXX-linux-gcc就可以找到這個庫進行編譯,make就可以通過啦!

然后make install,可以在configure時指定安裝目錄--prefix,這樣便于尋找編譯生成的工具。

這樣我們就可以找到我們需要的gdb工具啦!

如果我們不交叉編譯gdb,而是編譯在本機上試用的gdb時nake不會碰到這個錯誤,那是因為本機gcc默認庫搜索目錄/usr/lib下有這個庫libtermcap.a,但是這是一個鏈接文件,鏈接到了libncurses.a上,那是因為termcap庫是一個比較老的終端數據庫,現在都試用ncurses庫代替,但是有些程序還是試用termcap庫,所以系統中安裝ncurses庫時默認做一個鏈接文件,防止gdb的這種編譯錯誤。


超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的configure: error: no termcap library found的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。