如何交叉编译libncursesw5-dev for arm?

时间:2017-09-27 11:00:54

标签: cross-compiling ncurses

我有交叉编译的ncurses,这似乎很容易。

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

然后:

make

然后将前缀目录中的所有内容复制到相应的build-sysroot位置,这是我的交叉编译器的build-sysroot。

然后我尝试编译nano:

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

然后

make

我注意到它无法找到ncursesw文件夹。

然后我注意到结果包含了libncursesw5-dev的文件夹和库(我是通过apt-get从Ubuntu获得的,但是编译它)与ncurses不同。例如,在/ include目录下,ncurses将有一个名为ncurses的文件夹,而libncursesw5-dev将有一个名为ncursesw的文件夹。 文件也不同。

我搜索了libncursesw5-dev的源代码,它重新引导我进入debian包页面。我只能找到ncurses的来源。

有没有办法找到libncursesw5-dev的来源?或者我真的编错了吗? 或者这两者之间的关系到底是什么?

1 个答案:

答案 0 :(得分:0)

您最好将相同的前缀用于所有autoconf相关的交叉编译。例如

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

适用于ncursesnano

也许你需要告诉所有的编辑,在$HOME/armstuff/include下查看包含,在$HOME/armstuff/lib下查看库,例如:通过 CFLAGS+=-I$HOME/armstuff/includeLDFLAGS+=-L$HOME/armstuff/lib添加到configure个命令中。

顺便说一句,您可以查看由Makefile生成的configure - 并且您可以使用CFLAGS+=-H构建,以要求GCC编译器显示每个包含的文件(以了解究竟是什么发生在建造时间。)

  

然后将前缀目录中的所有内容复制到相应的build-sysroot位置,这是我的交叉编译器的build-sysroot。

我不明白你做了什么(build-sysroot与configure有关,应该传递给它)。

我建议安装例如。

make install DESTDIR=/tmp/arminst/

然后仔细列出/tmp/arminst的内容并明确地将其复制 <{1}}(但尊重您的前缀......)。

最后,阅读Linux From Scratch应该会有所帮助,并且也会研究cp -va个包裹;另请参阅GNU stow

  

有没有办法找到libncursesw5-dev的来源?

dpkg,但您需要了解如何构建软件包。也许可以学习如何使用ncurses