2017-09-27 223 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