sno:我用的版本是ncurses-5.3.tar.gz  下载地址是:ftp://ftp.gnu.org/gnu/ncurses/

假设你已经在某处解压了ncurses-5.7的源码包。
1. 首先进入源码目录


# cd ncurses-5.7
 
 2. Configure it!
 
# ./configure  CC=arm-linux-gcc --host --arm-linux --target=arm-linux --enable-widec --with-shared --prefix=/usr/local/arm/4.3.2


这里对configure的参数加以说明,这能够帮助你更好的理解这个编译的过程和细节,也方 便根据你自己的环境编译Ncurses库(当然也包括其它软件)。


CC=arm-linux-gcc


指定编译过程中使用的编译器,也就是我们用到的交叉编译 器。如果是在环境二下,你应该将arm-linux-gcc增加到了当前环境变量之中,所以你不必 过多的担心这个参数会对你使用的编译器无效。


--host


如果没有这个参数,configure过程会出错,并提示你如果使用了交叉编 译工具在configure的时候添加--host参数,


arm-linux


这个我觉得应该是指定程序在arm处理器下运行(有错请指 出)。在环境二下 有的文章说要使用arch=arm来表明未来的代码是在arm处理器下面使 用的,但 是在环境一 下面这样做是个错误。当然如果你的环境二下面的话,就请使 用 arch=arm代替arm-linux 这个参数,反正我是这么觉得的,没有理由。


--target=arm-linux


个人感觉是指定目标系统吧。具体什么我也不清 楚,反正加上就对了。哈哈。


--enable-widec


这个是源码包里面的说明。如果你希望Ncurses库支持宽字集,也就是unicode字符集,简单一点来说就是支持中文,比如在ncurses,menu,form等之中使用中文的话(有关Ncurses库支持中文的方法我会在另一篇文章中说明),你最好加上这个参数。


--with-shared


可能用来指明要生成共享库吧。我不清楚,加上没错。

--prefix=/usr/local/arm/4.3.2


指明你的编译器安装在哪里。因为交叉编译过程中用到的动态或者静态库的指令集都是针对寄主处理器(可以认为是arm处理器或者是其它什么的,反正就不是针对你宿主PC,所以这也是为什么要进行交叉编译的原因)。这里要特别注意的是不要写成/usr/local/arm/4.3.2/因为这样会使安装路径变成/usr/local/arm/4.3.2//,也就是说在onfigure的过程中会自动在末尾添加一个反斜杠。

然后终端打印大量配置信息,最后几行说明了ncurses工具、头文件、库文件、帮助文档和终端信息安装在哪个目录下

 

3. 开始make并安装

# make HOSTCC=gcc CXX=arm-linux-c++ && make install

至此我们的移植过程算是完成了一半。也就是在给交叉器加入了适合Mini2440使用的库, 能够全我们正常的交叉编译我们的ncurses代码。下一篇文章我们将会讲述如何在Mini2440上使我 们的程序正常运行。