簡體   English   中英

binutils-gdb 編譯找不到 ncurses

[英]compilation of binutils-gdb can't find ncurses

我正在嘗試根據本教程為 i686-elf 目標編譯 binutils:

我剛剛添加了--enable-tui選項,以便在 gdb 中獲得支持。

我做了以下事情:

# get sources
git clone git://sourceware.org/git/binutils-gdb.git

# store settings
export PREFIX="`pwd`/opt/cross"
export TARGET=i686-elf
export PATH="$PREFIX/bin:$PATH"

# create build folder
mkdir build-binutils
cd build-binutils

# run configure
../binutils-gdb/configure -target=$TARGET --prefix="$PREFIX" --with-sysroot --disable-nls --disable-werror --enable-tui

# make
make

這會運行一段時間並以以下錯誤終止:

checking for library containing socketpair... (cached) none required
checking for ld used by GCC... (cached) ld
checking if the linker (ld) is GNU ld... (cached) yes
checking for shared library run path origin... (cached) done
checking for iconv... (cached) yes
checking for iconv declaration... (cached) 
         extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking for library containing waddstr... (cached) no
configure: error: no enhanced curses library found; disable TUI
make[1]: *** [Makefile:11329: configure-gdb] Error 1
make[1]: Leaving directory '/home/noexpandtab/dev/build-binutils'
make: *** [Makefile:853: all] Error 2

對我來說,似乎找不到 ncurses 庫。

我有一個 Debian 10 正在運行並安裝了以下附加軟件包:

  • libncurses-dev
  • ncurses-base
  • ncurses-doc
  • libncurses5-dev

我必須安裝額外的軟件包嗎? 還是我錯過了配置腳本的一些選項?

您正在交叉編譯到不同的架構( i686-elf ),而不是您正在運行的任何東西 - 問題中提到的$TARGET gdb 必須與為該架構構建的庫鏈接。

Debian 提供了在當前架構上運行的ncurses 包,但沒有為交叉編譯的應用程序提供合適的 package。 所以你可以為自己做這件事。

交叉編譯 ncurses 時,您必須記住它的一部分在當前架構上構建/運行(以生成源文件以供交叉編譯器編譯)。 這在環境中定義為$BUILD_CC (而不是$CC ),正如您在閱讀mingw cross-compiling腳本時可能看到的那樣。 INSTALL文件中有一個部分(在 ncurses 源中)概述了該過程。

沒有教程(無論如何這將是題外話),但其他人已經閱讀了說明和交叉編譯的 ncurses,正如最近的錯誤報告所證明的那樣。

我重試了整個編譯過程,突然它起作用了:我測試了一下,我認為我發現了我的錯:我在沒有--enable-tui情況下執行了configure ,而make在那里工作。 然后我在同一個文件夾中使用--enable-tui執行configure而不清理它。 清理或在新文件夾中運行后編譯。

感謝一位發布刪除opt/cross內容的用戶。 (評論本身已經以某種方式在兩者之間被刪除了。)這不是解決方案,但引導我朝着正確的方向前進。

TL;DR:在再次使用不同參數運行configure之前清理構建文件夾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM