c - Linux 交叉编译库

标签 c linux cross-compiling

我尝试使用 Linaro 为我的 ARM 板交叉编译“nano-2.5.3”程序。 我的构建平台是 linux ubuntu 12.04。我使用这些命令

export PATH=$PATH:/project/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin
export CROSS_COMPILE=arm-linux-gnueabihf-
export ARCH=arm

./configure --host=arm-linux-gnueabihf --prefix=/project/nano

一切顺利,然后我尝试使用 make

make

之后出现错误:

/usr/include/ncursesw/curses.h:60:34: fatal error: ncursesw/ncurses_dll.h: No such file or directory

所以我用我的交叉编译器在路径“/project/ncurses”中编译了一个 ncurses 库,并添加了包含:

export  CPPFLAGS=-I/project/ncurses/include/ncurses

再做一遍。但没有运气 我尝试了一切,但交叉编译器继续检查原始路径 以下是完整的错误文本:

make  all-recursive
make[1]: Entering directory `/project/nano-2.5.3'
Making all in doc
make[2]: Entering directory `/project/nano-2.5.3/doc'
Making all in man
make[3]: Entering directory `/project/nano-2.5.3/doc/man'
make  all-recursive
make[4]: Entering directory `/project/nano-2.5.3/doc/man'
Making all in fr
make[5]: Entering directory `/project/nano-2.5.3/doc/man/fr'
make  all-am
make[6]: Entering directory `/project/nano-2.5.3/doc/man/fr'
make[6]: Nothing to be done for `all-am'.
make[6]: Leaving directory `/project/nano-2.5.3/doc/man/fr'
make[5]: Leaving directory `/project/nano-2.5.3/doc/man/fr'
make[5]: Entering directory `/project/nano-2.5.3/doc/man'
make[5]: Nothing to be done for `all-am'.
make[5]: Leaving directory `/project/nano-2.5.3/doc/man'
make[4]: Leaving directory `/project/nano-2.5.3/doc/man'
make[3]: Leaving directory `/project/nano-2.5.3/doc/man'
Making all in texinfo
make[3]: Entering directory `/project/nano-2.5.3/doc/texinfo'
make  all-am
make[4]: Entering directory `/project/nano-2.5.3/doc/texinfo'
make[4]: Nothing to be done for `all-am'.
make[4]: Leaving directory `/project/nano-2.5.3/doc/texinfo'
make[3]: Leaving directory `/project/nano-2.5.3/doc/texinfo'
Making all in syntax
make[3]: Entering directory `/project/nano-2.5.3/doc/syntax'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/project/nano-2.5.3/doc/syntax'
make[3]: Entering directory `/project/nano-2.5.3/doc'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/project/nano-2.5.3/doc'
make[2]: Leaving directory `/project/nano-2.5.3/doc'
Making all in m4
make[2]: Entering directory `/project/nano-2.5.3/m4'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/project/nano-2.5.3/m4'
Making all in po
make[2]: Entering directory `/project/nano-2.5.3/po'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/project/nano-2.5.3/po'
Making all in src
make[2]: Entering directory `/project/nano-2.5.3/src'
arm-linux-gnueabihf-gcc -DHAVE_CONFIG_H -I. -I..  -DLOCALEDIR=\"/project/nano/share/locale\" -DSYSCONFDIR=\"/project/nano/etc\" -I/usr/include/ncursesw -I/project/ncurses/include/ncurses  -g -O2 -Wall -MT browser.o -MD -MP -MF .deps/browser.Tpo -c -o browser.o browser.c
In file included from nano.h:93:0,
                 from proto.h:27,
                 from browser.c:25:
/usr/include/ncursesw/curses.h:60:34: fatal error: ncursesw/ncurses_dll.h: No such file or directory
compilation terminated.
make[2]: *** [browser.o] Error 1
make[2]: Leaving directory `/project/nano-2.5.3/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/project/nano-2.5.3'
make: *** [all] Error 2

最佳答案

找到了! 问题出在图书馆名称的相似性上。 我编译了“ncurses”库,但是当我搜索库名称时,它是“ncursesw”! 非常相似...但它们不是。

关于c - Linux 交叉编译库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38068454/

相关文章:

css - 如何将 SASS 代码编译成 CSS?

c - ePoll 不接受一些客户

c - 为什么 'pause' 系统调用总是返回 -1?

linux - 在awk中将一个字符串拆分成一堆行

ruby-on-rails - 如何在 Windows 上安装 Linux Rails gem

linux - 内核模块不构建 .ko 文件

c++ - if(null) 正在使用 clang++ 编译的特定计算机中执行

c - LeaveCriticalSection() 是否将缓存的变量刷新到内存中?

c - 使用 malloc 和 realloc 进行动态存储的最佳方式

linux - 尽管存在必要的权限,但复制时权限被拒绝