文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Mini2440移植Ncurses库(二)

Mini2440移植Ncurses库(二)

时间:2011-01-12  来源:沧之声

 

注意:这里隐藏了一个问题
可能你的连接器(LD)仍然无法找到找到libncurses等库,这是因为我们的安装目录 并没有把lib库安装到LD可以找到的地方。我的解决方法是把ncurses相关的库添加到 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/lib/当中,我想这个应该 是LD默认的搜索路径了。

使用arm-linux-gcc编译你的程序,编译成功之后就生成了arm平台要执行的代码。 然后在开发板上通过NFS挂载你的程序告破目录(其实随便你怎么挂载只要你能找到就行)。

一般来说你会遇到如下的几个问题,我们慢慢分析。

问题一:

libncurses(w).so.5: cannot open shared object file: No such file or directory

这是因为在Mini2440开发板上面是没有与Ncurses库有关的动态库或者 静态 库,只要添加到相应的目录就可以了。比如笔者用的就是比较粗糙的方法,直接将 libncursesw.so.5,复制到/lib(该目录就是Mini2440板的库文件所在目录) 目录下面。当 然如果你的程序中使用了menua或者panel库的话,也会出现类似 的错误提示,方法同样, 将对应的库复制到/lib即可。在宿主机器的/usr/local/arm/4.3.2/lib下面可以找到所需 要的库。当然,如果你想通过添加环境变量LD_LIBRARY_PATH的方式解决也是可以的。

问题二:

Error opening terminal: vt102.


这是因为开发版上 面没有对应的终端信息。运行基于ncurses库的程序必须先设置终端信息环境变量 TERMINFO;否则会提示找不到终端信息。这个方法也简单,在开发板上建立目录 /usr/share/terminfo,然后将/usr/local/arm/4.3.2/share/terminfo/v/目录复制到此处 就可以了,里面包含了开发板的vt102终端信息,当然还有其它很多不同各类的终端信息, 如果你为了减小空间占用,可以只复制vt102相关的文件,然后在当前的shell环境中添加 环境变量。

# export TERMINFO=/usr/share/terminfo



问题三:中文乱码
这也是一个相当棘手的问题,但是在PC上面我已经解决了,请参见我的下一篇文章。如果 你知道如果在Mini2440开发板终端正常显示Ncurses程序的中文,那我非常欢迎你给我以解 答,因为这个问题苦苦困扰了我很久,到目前仍未有解决方案。我一直很郁闷。

 

到这里我们就讲完了如何移植Ncurses到Mini2440开发板上,并让我们的ncurses程 序非正常运行(中文乱码未曾解决)。还请高人价赐教。

 

 

参考文章:
http://blog168.chinaunix.net/space.php?uid=23089249&do=blog&id=34484
http://www.ailis.de/~k/archives/19-ARM-cross-compiling-howto.html


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载