cdrtools-3.02 arm7 交叉编译通过
2016-01-27 13:54
176 查看
1) uname -a 查看 armv7l 内核2.6
Linux dvr 2.6.37 #57 Fri Aug 14 10:35:26 CST 2015 armv7l unknown
设置编译环境:
export PATH=/home/yod/workbench/github/out_project/2016-01-25/toolchain/bin/:$PATH
export CONFIG_RMTDEBUG=true
export CONFIG_RMTCALL=:
export CC=/home/yod/workbench/github/out_project/2016-01-25/toolchain/bin/arm-linux-gcc
export CONFIG_RMTHOST=NONE
export SYSROOT=/home/yod/workbench/github/out_project/2016-01-25/toolchain/arm-none-linux-gnueabi/libc
编译:
make ARCH=armv7l OSNAME=linux CCOM=gcc "CC_COM=$CC"
会报错,
然后开始查找错误:
主要是以下为空或者不存在,
incs/armv7l-linux-gcc/align.h
incs/armv7l-linux-gcc/avoffset.h
修改步骤:
a)
diff --git a/RULES/rules.inc b/RULES/rules.inc
15 index e0c3ea8..fe790c4 100755
16 --- a/RULES/rules.inc
17 +++ b/RULES/rules.inc
18 @@ -46,11 +46,11 @@ $(PTARGETCX): $(OFILES) $(SRCLIBS)
19 # If calling "$(PTARGETC)$(_XEXEEXT)" fails, this may be a cross compilation,
20 # so retry to run the command under control of "$(CONFIG_RMTCALL)".
21 #
22 -$(PTARGET): $(OINCSDIR) $(PTARGETCX)
23 - @echo " ==> GENERATING include file \"$@\""; \
24 - $(PTARGETC)$(_XEXEEXT) > $@ || \
25 - $(CONFIG_RMTCALL) $(PTARGETC)$(_XEXEEXT) > $@
26 -
27 +#$(PTARGET): $(OINCSDIR) $(PTARGETCX)
28 +# @echo " ==> GENERATING include file \"$@\""; \
29 +# $(PTARGETC)$(_XEXEEXT) > $@ || \
30 +# $(CONFIG_RMTCALL) $(PTARGETC)$(_XEXEEXT) > $@
31 +#
b)拷贝如下到板子上,
./inc/OBJ/armv7l-linux-gcc/align_test > align.h
./inc/OBJ/armv7l-linux-gcc/avoffset > avoffset.h
分别运行 生成对应头文件,然后copy回来,放到 incs/armv7l-linux-gcc/
c) cdrtools-3.02 源码,重新从解压处获取一份。然后make,直接在linux下编译,应该是直接编译过去的。然后对比xconfig.h 文件;
/home/yod/workbench/github/out_project/arm/new_0127/cdrtools-3.02/incs/armv7l-linux-gcc/xconfig.h
/home/yod/workbench/github/out_project/cdrtools-3.02_linux/cdrtools-3.02/incs/x86_64-linux-cc/xconfig.h
主要修改
#define SIZEOF_CHAR 1
#define SIZEOF_SHORT_INT 2
#define SIZEOF_INT 4
#define SIZEOF_LONG_INT 4
#define SIZEOF_LONG_LONG 8
#define SIZEOF___INT64 0
#define SIZEOF_CHAR_P 4
#define SIZEOF_UNSIGNED_CHAR 1
#define SIZEOF_UNSIGNED_SHORT_INT 2
#define SIZEOF_UNSIGNED_INT 4
#define SIZEOF_UNSIGNED_LONG_INT 4
#define SIZEOF_UNSIGNED_LONG_LONG 8
#define SIZEOF_UNSIGNED___INT64 0
#define SIZEOF_UNSIGNED_CHAR_P 4
#define SIZEOF_FLOAT 4
#define SIZEOF_DOUBLE 8
#define SIZEOF_LONG_DOUBLE 8
#define SIZEOF_SIZE_T 4
#define SIZEOF_SSIZE_T 4
#define SIZEOF_PTRDIFF_T 4
#define SIZEOF_MODE_T 4
#define SIZEOF_UID_T 4
#define SIZEOF_GID_T 4
#define SIZEOF_PID_T 4
请参考align.h 里面的sizeofint等,
然后再
make ARCH=armv7l OSNAME=linux CCOM=gcc "CC_COM=$CC"
这次应该成功了。
sudo make install ARCH=armv7l OSNAME=linux CCOM=gcc "CC_COM=$CC"
Linux dvr 2.6.37 #57 Fri Aug 14 10:35:26 CST 2015 armv7l unknown
设置编译环境:
export PATH=/home/yod/workbench/github/out_project/2016-01-25/toolchain/bin/:$PATH
export CONFIG_RMTDEBUG=true
export CONFIG_RMTCALL=:
export CC=/home/yod/workbench/github/out_project/2016-01-25/toolchain/bin/arm-linux-gcc
export CONFIG_RMTHOST=NONE
export SYSROOT=/home/yod/workbench/github/out_project/2016-01-25/toolchain/arm-none-linux-gnueabi/libc
编译:
make ARCH=armv7l OSNAME=linux CCOM=gcc "CC_COM=$CC"
会报错,
然后开始查找错误:
主要是以下为空或者不存在,
incs/armv7l-linux-gcc/align.h
incs/armv7l-linux-gcc/avoffset.h
修改步骤:
a)
diff --git a/RULES/rules.inc b/RULES/rules.inc
15 index e0c3ea8..fe790c4 100755
16 --- a/RULES/rules.inc
17 +++ b/RULES/rules.inc
18 @@ -46,11 +46,11 @@ $(PTARGETCX): $(OFILES) $(SRCLIBS)
19 # If calling "$(PTARGETC)$(_XEXEEXT)" fails, this may be a cross compilation,
20 # so retry to run the command under control of "$(CONFIG_RMTCALL)".
21 #
22 -$(PTARGET): $(OINCSDIR) $(PTARGETCX)
23 - @echo " ==> GENERATING include file \"$@\""; \
24 - $(PTARGETC)$(_XEXEEXT) > $@ || \
25 - $(CONFIG_RMTCALL) $(PTARGETC)$(_XEXEEXT) > $@
26 -
27 +#$(PTARGET): $(OINCSDIR) $(PTARGETCX)
28 +# @echo " ==> GENERATING include file \"$@\""; \
29 +# $(PTARGETC)$(_XEXEEXT) > $@ || \
30 +# $(CONFIG_RMTCALL) $(PTARGETC)$(_XEXEEXT) > $@
31 +#
b)拷贝如下到板子上,
./inc/OBJ/armv7l-linux-gcc/align_test > align.h
./inc/OBJ/armv7l-linux-gcc/avoffset > avoffset.h
分别运行 生成对应头文件,然后copy回来,放到 incs/armv7l-linux-gcc/
c) cdrtools-3.02 源码,重新从解压处获取一份。然后make,直接在linux下编译,应该是直接编译过去的。然后对比xconfig.h 文件;
/home/yod/workbench/github/out_project/arm/new_0127/cdrtools-3.02/incs/armv7l-linux-gcc/xconfig.h
/home/yod/workbench/github/out_project/cdrtools-3.02_linux/cdrtools-3.02/incs/x86_64-linux-cc/xconfig.h
主要修改
#define SIZEOF_CHAR 1
#define SIZEOF_SHORT_INT 2
#define SIZEOF_INT 4
#define SIZEOF_LONG_INT 4
#define SIZEOF_LONG_LONG 8
#define SIZEOF___INT64 0
#define SIZEOF_CHAR_P 4
#define SIZEOF_UNSIGNED_CHAR 1
#define SIZEOF_UNSIGNED_SHORT_INT 2
#define SIZEOF_UNSIGNED_INT 4
#define SIZEOF_UNSIGNED_LONG_INT 4
#define SIZEOF_UNSIGNED_LONG_LONG 8
#define SIZEOF_UNSIGNED___INT64 0
#define SIZEOF_UNSIGNED_CHAR_P 4
#define SIZEOF_FLOAT 4
#define SIZEOF_DOUBLE 8
#define SIZEOF_LONG_DOUBLE 8
#define SIZEOF_SIZE_T 4
#define SIZEOF_SSIZE_T 4
#define SIZEOF_PTRDIFF_T 4
#define SIZEOF_MODE_T 4
#define SIZEOF_UID_T 4
#define SIZEOF_GID_T 4
#define SIZEOF_PID_T 4
请参考align.h 里面的sizeofint等,
然后再
make ARCH=armv7l OSNAME=linux CCOM=gcc "CC_COM=$CC"
这次应该成功了。
sudo make install ARCH=armv7l OSNAME=linux CCOM=gcc "CC_COM=$CC"
相关文章推荐
- 【码农流水账】一个码农的成长05
- openstack运维实战系列(十二)之nova aggregate资源分组
- python系列之 - 装饰器
- 碎雨目录
- docker学习笔记(一)——安装
- python中的比较
- 返回键 隐藏、、收起键盘textView|textField
- Linq Group By 获取分组内信息
- 电脑爱好者GHOSTXPSP32016新春版V1.0
- Nginx基础入门之proxy反向代理常用配置项说明
- 如何切分id串并得到name串
- BZOJ 1052: [HAOI2007]覆盖问题
- 确定比赛名次(拓扑序)
- 134 uml 类图
- EK中fromCharCode和parseInt的配合使用
- 练习-checkbox 全选 ,反选, 单选,以及取值
- 位运算符
- gridView中合并单元格
- Xcode 7测试化工具XCTestCase
- 在OpenCV中用cvCalibrateCamera2进行相机标定(附程序)