我有交叉编译的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的来源?或者我真的编错了吗? 或者这两者之间的关系到底是什么?
答案 0 :(得分:0)
您最好将相同的前缀用于所有autoconf
相关的交叉编译。例如
./configure --host=arm-linux-gnue --prefix=$HOME/armstuff
适用于ncurses
和nano
也许你需要告诉所有的编辑,在$HOME/armstuff/include
下查看包含,在$HOME/armstuff/lib
下查看库,例如:通过将 CFLAGS+=-I$HOME/armstuff/include
和LDFLAGS+=-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