2017-09-27 116 views
1

我有交叉編譯的ncurses,這似乎很容易。如何交叉編譯libncursesw5-dev for arm?

./configure --host=arm-linux-gnue --prefix=/home/ncurse 

則:

make 

然後,所有從前綴目錄中的內容複製到相應的集結SYSROOT位置,這是我的交叉編譯器的累積SYSROOT。

然後我試圖編譯納米:

./configure --host=arm-linux-gnue --prefix=/home/nano 

然後

make 

它注意到我,它無法找到ncursesw文件夾。

然後我注意到libncursesw5-dev的文件夾和libs(我從Ubuntu獲得它通過apt-get不是編譯它)與ncurses不同。例如,在/ include目錄下,ncurses將有一個名爲ncurses的文件夾,而libncursesw5-dev將有一個名爲ncursesw的文件夾。 這些文件也不同。

我搜索了libncursesw5-dev的源代碼,它將我重定向到debian包頁面。我只能找到ncurses的來源。

有什麼方法可以找到libncursesw5-dev的來源?還是我真的把它們編譯錯了? 或者這兩者之間的關係究竟是什麼?

+0

你是如何交叉編譯'ncurses'的?你是如何安裝它的?你是如何使用它交叉編譯你的代碼的?編輯你的問題,以顯示你用於 –

+0

@BasileStarynkevitch thnx的實際命令(每個命令行開頭有四個空格)。我更新了它。 –

+0

你沒有足夠的瞭解(你是如何安裝'ncurses',你是如何編譯你的代碼的),或者你的'--prefix ='錯誤。它應該是一些*絕對*目錄路徑和'xxx'是相對的。在問題 –

回答

0

對於您所有的autoconf相關交叉編譯,您最好使用相同的前綴。例如

./configure --host=arm-linux-gnue --prefix=$HOME/armstuff 

對於這兩種ncursesnano

也許你需要告訴所有的編譯$HOME/armstuff/include下,尋找包括下$HOME/armstuff/lib圖書館,例如通過configure命令添加CFLAGS+=-I$HOME/armstuff/includeLDFLAGS+=-L$HOME/armstuff/lib

順便說一句,你可以看看由configure產生的Makefile -s,你可能會CFLAGS+=-H建設要求GCC編譯器,以顯示每一個包含文件(要了解究竟是在編譯的時候發生的事情)。

然後將所有內容從前綴目錄複製到相應的build-sysroot位置,這是我的交叉編譯器的build-sysroot位置。

我不明白你做了什麼(和build-sysroot與configure有關,應該傳遞給它)。

我建議安裝與例如

make install DESTDIR=/tmp/arminst/ 

然後仔細列出/tmp/arminst內容,並將其複製明智一些cp -va(但請尊重你的前綴......)。

最後,閱讀約Linux From Scratch應該是有幫助的,也研究dpkg包;也請看GNU stow

有什麼方法可以找到libncursesw5-dev的來源?

ncurses,但你需要了解包如何被建立。也許學習如何使用apt-build