加入收藏
|
设为首页
|
会员中心
|
RSS
首页
开源资讯
Linux技术
硬件产品
下载中心
网上商城
BLOG
视频讲堂
认证频道
登陆
|
注册
|
修改资料
|
短信息
|
设置空间
|
管理信息
|
收藏夹
|
我的状态
|
消费记录
|
充值卡充值
|
我的购物车
|
我的订单
|
退出
|
|
新手入门
|
系统管理
|
Web开发
|
网络管理
|
桌面应用
|
编程开发
|
网络安全
|
高性能集群
|
Linux嵌入式
|
|
技术文章
|
SUN 系列
|
IBM 系列
|
HP 系列
|
曙光 系列
|
浪潮 系列
|
方正 系列
|
戴尔 系列
|
|
系统软件
|
网络工具
|
安全相关
|
媒体工具
|
OURLPI群专区
|
|
红帽专卖
|
红旗专卖
|
suse专卖
|
5Th Rack
|
CentOS
|
应用软件
|
|
|
|
您当前的位置:
首页
>
Linux技术
>
编程开发
flnx - cross compile for arm
时间:2010-07-09 12:30:31 来源: 作者:
前,前一篇
已經做到好像OK(碰到recognizeable insn error )。因為cross compile libwww 好像
OK
。所以現在拿flnx-0.17再來試試。
有 關cross compile flnx, INSTALL file section b 有特別說明cross compile的procedure,重點就是在設定compile tool 變數,為了方便,可以先寫出下面的shell script(setcrosstool.sh) :
export AR=arm-elf-ar
export AS=arm-elf-as
export CC=arm-elf-gcc
export CXX=arm-elf-c++
export GXX=arm-elf-g++
export LD=arm-elf-ld
export NM=arm-elf-nm
export RANLIB=arm-elf-ranlib
export STRIP=arm-elf-strip先run 這一個script :
$ source setcrosstool.sh再run configure,因為使用uClibc,沒有支援STL,STL使用STLport-4.5.3。要將STLport的include path加到CXXFLAGS中。 這個動作沒辦法在config時指定,所以要部份作:
confugre --- 修改makeinclude --- makeconfigure時可以 指定的是microwin 的src path(with-microwin)和安裝的path(prefix).
./configure --with-microwin=/home/charles/magsi/armutils_2.5.91.0/build_arm/microwin/src --prefix=/home/charles/sigma/libflnx --host=i686-pc-linux-gnu會產生makeinclude。
接著修改makeinclude: 在CXXFLAG中加入以下option
-Dlinux : 修正
-I/home/charles/magsi/armutils_2.5.91.0/build_arm/STLport-4.5.3/include : 修正"cannot find iostream.h"
-I/home/charles/magsi/armutils_2.5.91.0/build_arm/STLport-4.5.3/stlport : 修正 "cannot find stdlib.h"在LDLIBS和GLIBS都 加入以下options-L/home/charles/sigma/libjpeg6b/lib :修正"cannot find -ljpeg"就可以開始make.
最先出現問題應該都是"unrecognizeable insn"問題,從error message中找到問題的function,找function的local variable中有沒有宣告size過大的array,把size改小。
接著會出現link 時發生resolved external : rint.
這是因為uClibc 的libm沒有加入s_rint.c這個module,修改uClibc/libm/Makefile,把s_rint.c加入source list中,rebuild uClibc.
還會發生一次"unrecognized insn" error,這次是new太多變數,因為test program,所以直接刪掉那些太多的button就可以。
flnx build OK!!
如果要測試test下的program,還要修改下test/Makefile,在 "cxx: " 的rule加上 -Wl,-elf2flt="-s32768" ,才會strip down成uClinux的flt 執行檔格式。
test program時,要記得先啟動nano-X
還沒install ---$ make install
strip: Unable to recognise the format of the input file fluid查一下fluid/Makefile,這是因為install 使用x86的strip tool :strip,要修改為cross 的: arm-elf-strip.
OK.
但是還是不行,應該是要改 link command,加入elf2flt,轉換成flat binary file。
修改fluid/Makefile,在$(PROGRAM) : $(OBJ) 的build rule加上 -Wl,-elf2flt="-s32768"刪掉install :的rule中刪掉strip 這個command。
fluid,重新make。make install。(會有error,因為include和lib都已經有了,所以error是應該的)。
make install 後,會在install folder(這個例子是libflnx)下有bin, include, lib三個folder。
bin內是一個demo program。可以執行(好像是一個editor..)。
来顶一下
返回首页
发表评论
共有
条评论
用户名:
密码:
验证码:
匿名发表
推荐资讯
疑似Google Chrome OS
相关文章
无相关信息
栏目更新
栏目热门
站内搜索:
新闻
下载
图库
FLASH
电影
商品
文章
分类信息
高级搜索
网站首页
|
关于我们
|
服务条款
|
广告服务
|
联系我们
|
网站大全
|
免责声明
|
返回顶部
Copyright © 2007-2008 LinuxExpress, All rights reserved.
Powered by 开源快讯 站务联系:linuxexpress.com.cn@gmail.com
京ICP备06029167号