交叉编译

编译busybox的笔记

六眼飞鱼酱① 提交于 2019-12-04 12:49:53
for 平台: imx6dl sarasb busybox 版本 : 1.26.2 交叉编译步骤: 按照 nxp community 的步骤, https://community.nxp.com/docs/DOC-95046 , 下载解压后, 先 source poky 工具链环境变量, 然后 make defconfig 接着把 .config 里面的 CONFIG_STATIC=y , 进行静态链接. 然后 make 编译过程会有错误, 我是直接修改 Makefile 来解决问题, 1 / 将 CC 添加内容: CC = $( CROSS_COMPILE )gcc -mfloat-abi=hard -L/opt/fsl-imx-x11/4.1.15-1.2.0/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib CFLAGS := $( CFLAGS ) -D__ARM_PCS_VFP -I/opt/fsl-imx-x11/4.1.15-1.2.0/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include -L/home/zoe/fsl-release-bsp/build_dl_upt/tmp/sysroots/imx6dlsabresd/usr/lib -

2019-2020-1 20175315 20175322 20175334 实验一 开发环境的熟悉

吃可爱长大的小学妹 提交于 2019-12-04 04:38:14
实验目的 熟悉arm开发环境 实验步骤 一、交叉编译环境-(使用实验室台式机) 实验要求: 1、可以使用自己的笔记本,也可以使用实验室台式机 2、安装老师提供的 software 目录中的 “VMware-workstation-full-10.0.1-1379776.exe” 3、解压老师提供的 software 目录中的 “Ubuntu1204.rar” 4、用VMWare打开Ubuntu,用户名:linux,口令:1 5、建立实验目录 "mkdir linux_组员1学号_组员2学号_组员3学号" 6、在实验目录中编写 “hello word” 程序,另外补充几行打印所有组员的学号姓名 7、参考bocsd目录中的脚本 armc.sh , 分别用gcc和交叉编译器 arm-none-linux-gnuenbi-gcc 编译 hello.c ,用gcc编译的可执行文件命名 linuxhello:gcc hello.c -o linuxhello ; 用 arm-none-linux-gnuenbi-gcc 编译的命名为 armhello: /usr/local/toolchain/toolchain4.3.2/bin/arm-none-linux-gnuenbi-gcc hello.c -o armhello 8、分别运行 linuxhello , armhello ,有什么结果

2019-2020-1 20175234 20175205 20175217 实验一 开发环境的熟悉

我与影子孤独终老i 提交于 2019-12-04 00:21:50
目录 2019-2020-1 20175234 20175205 20175217 实验一 开发环境的熟悉 实验步骤 实验中的问题和解决过程 新学到的知识点 其他(感悟、思考等,可选) 参考资料 END 2019-2020-1 20175234 20175205 20175217 实验一 开发环境的熟悉 本组成员: 20175205 20175217 20175234 实验步骤 1-交叉编译环境-(使用自己笔记本电脑) 实验要求 安装老师提供的software目录中的“VMware-workstation-full-10.0.1-1379776.exe” 解压老师提供的software目录中的“Ubuntu1204.rar” 用VMWare打开Ubuntu,用户名:linux,口令:1 建立实验目录"mkdir linux_组员1学号_组员2学号_组员3学号" 在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名 参考bocsd目录中的脚本armc.sh, 分别用gcc和交叉编译器arm-none-linux-gnuenbi-gcc编译hello.c,用gcc编译的可执行文件命名linuxhello:gcc hello.c -o linuxhello; 用arm-none-linux-gnuenbi-gcc编译的命名为armhello: /usr

Ubuntu14.04 交叉编译busybox给 Android系统ARM目标板

爷,独闯天下 提交于 2019-12-03 20:06:19
拿到一个RK3288的开发板,但是不得不说adb shell不太好用,像下面这样太锉了。 于是想着把busybox编译进去。 1. 准备编译环境 其实现在Ubuntu上交叉编译相比之前要简单那很多。 1.1 安装 JDK 6: sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java6-installer 1.2 依赖包: Ubuntu 12.04 软件包安装: sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ g++-multilib mingw32 tofrodos gcc-multilib ia32-libs\ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 Ubuntu 13.10/14.04 软件包安装: sudo apt-get install git

libxcb 交叉编译

点点圈 提交于 2019-12-03 19:25:07
xcb-proto编译 交叉编译xcb-proto,下载地址 https://xcb.freedesktop.org/dist/ 使用的是1.6版本 CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ ./configure --prefix=/home/huey/Dev/Arm/xcb-proto --host=arm-linux make make install export PKG_CONFIG_PATH=/home/huey/Dev/Arm/xcb-proto/lib/pkgconfig libxcb 编译 下载地址 https://xcb.freedesktop.org/dist/ 使用的是 1.5版本,该版本要求xcb-proto 版本大于1.5 ,并且要求x11支持 CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ ./configure --prefix=/home/huey/Dev/Arm/xcb --host=arm-linux make make install 可能遇到的问题 1、需要xslproc sudo apt-get install xsltproc 2、缺少x11 需要交叉编译x11

【翻译】Go 1.1 交叉编译

萝らか妹 提交于 2019-12-03 19:16:07
这是一篇针对我在 去年8月 所写文章针对 Go 1.1 版本的更新补充介绍。自去年以来,像 goxc 这类 shell 封装工具已经诞生,从而为 Go 交叉编译和部署提供了一套完整的解决方案。 介绍 Go 对在外部机器上部署二进制文件而无需安装任何环境的支持非常好。这对于测试需要使用构建指令的包或者目标平台不适宜部署开发环境时是非常方便的。 对于构建与 Go 版本相匹配的交叉编译功能已经内置在了 Go 的构建脚本中;只要看看 GOOS、GOARCH,可能的话再看看 GOARM 就可以发现它们都在 ./make.bash 中被调用。因此,接下来的实现方案只是用于简化你的工作。 入门 1. 使用源码安装 Go。具体操作步骤可以在 golang.org/doc/install/source 找到。如果你已经非常熟悉安装过程,下面是一个简单的安装指示: % hg clone https://code.google.com/p/go % cd go/src % ./all.bash 2. 从 Github 上检出用于支持交叉编译的脚本: github.com/davecheney/golang-crosscompile 。 % git clone git://github.com/davecheney/golang-crosscompile.git % source golang

go语言的交叉编译

爱⌒轻易说出口 提交于 2019-12-03 19:15:42
GGox 是一个简单的,不花俏的Go平台交叉编译工具,它的用处就和标准的 go build 一样。Gox 会并行地为多种平台编译。Gox 同时也提供了一套交叉编译工具链。 GGox 项目地址: https://github.com/mitchellh/gox 安装 为了安装 Gox,请使用 go get。我们已经为版本打上了标签,所以可以随便切换标签进行编译: $ go get github.com/mitchellh/gox ... $ gox -h ... 用法 在你使用 Gox 之前,你必须先有一套交叉编译工具链。Gox 可以自动帮你完成这个。你需要做的只是运行(每次更新 Go 都要这样做这步): $ gox -build-toolchain ... 当你完成这个,你可以已经准备好进行交叉编译了。 如果你知道怎么去使用 go build, 那么你也知道怎么去使用 Gox 了。例如,编译当前的项目,无需提供参数,只需要调用gox。Gox 就会根据 CPU 的数量并行地为各个平台编译: $ gox Number of parallel builds: 4 --> darwin/386: github.com/mitchellh/gox --> darwin/amd64: github.com/mitchellh/gox --> linux/386: github.com

Linux 编译与交叉编译

大憨熊 提交于 2019-12-03 17:04:27
在Linux环境中,所处平台不同,执行文件也就不同,同一执行文件不能在不同平台下使用 如在Ubnutu下 是用gcc编译一个.c文件 gcc main.c -o main.out -o 可以指定输出文件名 但是这个mian.out文件只能在Ubnutu等其他X86构架的平台上运行,如果我们要在ARM上运行,就需要使用交叉编译器。 交叉编译器需要去根据系统构架去官网下载。 使用交叉编译器的编译一个可执行裸机文件: 流程 ①、使用arm-linux-gnueabihf-gcc,将.c .s文件变为.o arm-linux-gnueabihf-gcc -g -c main.c -o main.o ②、将所有的.o文件连接为elf格式的可执行文件。 arm-linux-gnueabihf-ld -Ttext 0X87800000 main.o -o main.elf 其中0x87800000为代码起始执行地址。 ③、将elf文件转为bin文件。 arm-linux-gnueabihf-objcopy -O binary -S -g main.elf main.bin 也可以将elf文件转为汇编,反汇编。 arm-linux-gnueabihf-objdump -D main.elf > main.dis 再使用imxdownload烧写到存储目录 ./imxdownload main

2018-2019-1 20175304 20175303 20175327 20175335 实验一 开发环境的熟悉

最后都变了- 提交于 2019-12-03 11:37:22
2018-2019-1 20175304 20175303 20175327 20175335 实验一 开发环境的熟悉 实验目的: 熟悉Linux开发环境;学会Linux开发环境的配置和使用;使用Linux的arm编译。 实验过程: 实验一-1-交叉编译环境-(使用自己笔记本电脑) 1.安装老师提供的software目录中的“VMware-workstation-full-10.0.1-1379776.exe” 2.解压老师提供的software目录中的“Ubuntu1204.rar” 3.用VMWare打开Ubuntu,用户名:linux,口令:1 4.建立实验目录"mkdir linux_20175304_20175303_20175327_20175335" 5.在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名 #include <stdio.h> int main(){ printf("HelloWorld!\n"); printf("20175304_20175303_20175327_20175335\n"); return 0; } 1.考bocsd目录中的脚本armc.sh, 分别用gcc和交叉编译器arm-none-linux-gnuenbi-gcc编译hello.c,用gcc编译的可执行文件命名linuxhello:gcc

嵌入式V3s交叉编译 tslib和QT4.8.7,并使用Qt Creator编译项目

匿名 (未验证) 提交于 2019-12-03 00:40:02
本文主参考: http://zero.lichee.pro/%E5%BA%94%E7%94%A8/QT_index.html 环境 Ubuntu16 64位 arm-linux-gnueabihf version 6.3.1 20170109 (Linaro GCC 6.3-2017.02) (根据参考链接编译嵌入式版本Qt4.8.7时遇到诸多问题,特此记录) 1.交叉编译并安装 sudo apt- get install libtool automake autogen autoconf libsysfs- dev git clone https: // github.com/kergoth/tslib.git cd tslib echo " ac_cv_func_malloc_0_nonnull=yes " > tmp.cache . / autogen.sh . /configure --host=arm-linux-gnueabihf --cache-file=tmp.cache --prefix=/opt/tslib CC=arm-linux-gnueabihf- gcc make sudo make install 完成后会在Ubuntu系统/opt目录下出现tslib文件夹,将此文件夹拷贝置嵌入式系统相同目录下,配置嵌入式系统环境变量 vi /etc/profile