ubuntu下安装交叉编译程序,并配置环境变量

合集下载

open4 ffmpeg 交叉编译

open4 ffmpeg 交叉编译

open4 ffmpeg 交叉编译我们需要准备好交叉编译的环境。

在本文中,我们以Ubuntu操作系统为例。

```sudo apt-get install gcc-arm-linux-gnueabi```安装完成后,我们可以使用以下命令检查是否安装成功:```arm-linux-gnueabi-gcc --version```接下来,我们需要下载open4和ffmpeg的源代码。

可以从官方网站上下载最新版本的源代码包,也可以使用Git进行下载。

下载完成后,我们可以将源代码包解压到指定的文件夹中。

在进行交叉编译之前,我们还需要为交叉编译器设置环境变量。

可以使用以下命令:```export CC=arm-linux-gnueabi-gccexport CXX=arm-linux-gnueabi-g++```接下来,我们可以开始进行open4的交叉编译。

进入open4源代码文件夹,并执行以下命令:```./configure --host=arm-linuxmake```编译完成后,我们可以得到编译好的open4库文件。

在交叉编译过程中,可能会遇到一些依赖问题。

如果出现依赖问题,我们需要在交叉编译环境中安装相应的依赖库。

接下来,我们可以开始进行ffmpeg的交叉编译。

进入ffmpeg源代码文件夹,并执行以下命令:```./configure --cross-prefix=arm-linux-gnueabi- --arch=arm --target-os=linux --prefix=安装路径makemake install```在上述命令中,我们使用了cross-prefix参数指定了交叉编译器的前缀,arch参数指定了目标平台的架构,target-os参数指定了目标平台的操作系统,prefix参数指定了安装路径。

编译完成后,我们可以得到编译好的ffmpeg可执行文件和库文件。

在交叉编译过程中,可能会遇到一些依赖问题。

交叉编译流程

交叉编译流程

交叉编译流程
交叉编译的过程可以分为以下步骤:
1. 选择目标体系结构:确定要交叉编译的目标体系结构,例如不同的硬件平台或操作系统。

2. 安装交叉编译工具链:交叉编译工具链包括交叉编译器、链接器、调试器和库文件等,用于将源代码编译成目标平台可执行程序。

这些工具可以通过官方提供的源代码进行编译,也可以通过第三方工具包进行安装。

3. 配置交叉编译环境:确保系统能够正确地找到和使用交叉编译工具链。

这通常涉及将工具链的路径添加到环境变量中,并在构建系统中设置相应的配置参数。

4. 运行configure命令:进入源码包根目录下,运行configure命令。


命令有很多参数可配置,可以用configure –help来查看,在交叉编译过程中可设置–host、–target、–build这几个参数。

这些参数配置后,configure时会读取源码目录下面的文件,查找、检查设置的参数是否支持。

完成以上步骤后,就可以开始进行交叉编译了。

如果还有其他疑问,建议咨询专业编程人员以获取更全面的信息。

(7条消息)ubuntu16.04 安装交叉编译工具aarch64

(7条消息)ubuntu16.04 安装交叉编译工具aarch64

(7条消息)ubuntu16.04 安装交叉编译工具aarch64前言最近需要把人脸识别代码放到RK3399Pro的嵌入式板子上,所以编写好的c++ 代码要放到板子上编译,或者在ubuntu系统上使用交叉编译工具,编译好可执行文件在放到板子里运行。

为了在能在ubuntu系统上能交叉编译,安装aarch64-linux-gnu-gcc/g++交叉编译工具链。

介绍The GNU Compiler Collection - cross compiler for ARM64 target. aarch64-linux-gnu-gcc/g++ 是一个交叉编译工具链,可以在其他架构的系统中,编译安装64 位arm 架构的程序。

常用在嵌入式代码的移植中。

aarch64-linux-gnu-gcc/g++ 是由非盈利组织Linaro 基于 GCC/G++ 推出的 ARM 交叉编译工具。

可用于交叉编译ARMv8 64 位目标中的裸机程序、u-boot、Linux kernel、filesystem 和 App 应用程序。

aarch64-linux-gnu-gcc/g++ 交叉编译器必须安装在 64 位主机上,才能编译目标代码。

安装# 查看可以安装的版本apt-cache search aarch64# 选择可以安装的版本进行安装# 此处选择gcc-5-aarch64-linux-gnu以及g++-5-aarch64-linux-gnu进行安装sudo apt-get install gcc-5-aarch64-linux-gnusudo apt-get install gcc-5-aarch64-linux-gnu# 安装依赖sudo apt --fix-broken install# 安装一个没有版本号的gcc和g++sudo apt-get install gcc-aarch64-linux-gnusudo apt-get install gcc-aarch64-linux-gnu# 查看版本aarch64-linux-gnu-g++ -vaarch64-linux-gnu-gcc -v测试c++文件交叉编译1.test.cpp文件/** test.cpp* for cplusplus* test aarch64-linux-gnu-g++*/# include<iostream>int main(int argc,char **argv){std::cout << "hello world!" <<std::endl;return 0;}2.交叉编译# 生成可执行文件test命令cd test # 切换到test 目录下aarch64-linux-gnu-g++ test_arm.cpp -o test # 将生成的可执行文件放到嵌入式板子上运行./test # 若显示hello world!表示成功。

Ubuntu9.04下安装SimpleScalar

Ubuntu9.04下安装SimpleScalar

Ubuntu9.04下安装SimpleScalar东南大学WZK1.安装环境Ubuntu9.04, GCC-4.3.3 (该操作系统自带)。

本安装过程在以上环境中测试通过,如果所在机器GCC版本不是4.3.3,可能安装过程会有所不同,但总体的思路一致。

2.软件下载首先到上下载以下三个tar包。

simplesim-3v0d.tgzsimpletools-2v0.tgzsimpleutils-2v0.tgz整个安装过程只需这个三个软件包即可。

3.安装过程3.1 解压缩假设把这三个软件包放在目录/root下。

我们新建一个simplescalar目录,并将这三个包复制放入。

然后解压缩,再将三个压缩包删除。

命令如下,假设当前在/root下。

mkdir simplescalar ;建立文件夹cp simplesim-3v0d.tgz simplescalar/ ;复制cp simpleutils-2v0.tgz simplescalar/cp simpletools-2v0.tgz simplescalar/cd simplescalar/ ;进入该文件夹tar –zxvf simplesim-3v0d.tgz ;对tar包进行解压缩,由于该包tar –zxvf simpletools-2v0.tgz ;有gzip压缩,故加上z选项,x tar –zxvf simpleutils-2v0.tgz ;是解压tar, v是列出文件,f指明rm –f *.tgz ;要解压的文件ls结果如下3.2 设置环境变量需设置三个环境变量,以方便后面的安装,不设置也行。

export HOST=i386-ubuntu-linux ;格式为机器类型-公司-系统export TARGET=sslittle-na-sstrix ;设置为小字端机器export IDIR=/root/simplescalar ;将结果安装到/root/simplescalar设置完成后可以依次输入echo $HOST,echo $TARGET,echo $IDIR,以检查设置是否正确。

交叉编译工具链的安装配置

交叉编译工具链的安装配置

交叉工具链的生成/uid-9185047-id-3158569.html软件平台:ubuntu 10.10主机编译器:gcc 4.5.1硬件平台:s3c24101、准备环境sudo apt-get install bison flex texinfo automake libtool cvs patch libncurses5-dev aria2 curl g++ subversion gawk cvsd expat gperf libexpat-dev注:有的没安装,第4步无法生成makefile,要先安装gperf2、下载crosstool-ng软件包crosstool-ng-1.17.0.tar.bz23、相应目录的建立sudo mkdir -p /usr/local/armsudo chmod 777 /usr/local/arm // 将arm目录权限设置为777cd /usr/local/armmkdir 4.7.2sudo mkdir -p /home/crosstoolcd /home/s3c2410/crosstoolsudo mkdir crosstool-build crosstool-install src-4.7.2(编译目录、安装目录、目标源码目录)4、安装crosstool-ngcp crosstool-ng-1.17.0.tar.bz2 /home/s3c2410/crosstool/解压crosstool-ng-1.17.0.tar.bz2,tar -xvf crosstool-ng-1.17.0.tar.bz2进入目录,进行配置:cd /home/s3c2410/crosstool/crosstool-ng-1.17.0将/home/s3c2410/crosstool/crosstool-install/lib/ct-ng.1.17.0/下的p cp到/etc/bash_completion.d配置安装目录为/home/s3c2410/crosstool/crosstool-install注:有的没安装gperf,无法生成makefile,要先安装gperfsudo ./configure --prefix=/home/crosstool/crosstool-installsudo make --编译sudo make install --安装5、配置编译的交叉编译工具链cd /home/s3c2410/crosstool/crosstool-build --进入编译目录cp/home/s3c2410/crosstool/crosstool-ng-1.17.0/samples/arm-unknown-linu x-gnueabi/* ./sudo cp crosstool.config .config --把crosstool-config --当作默认的配置文件sudo /home/crosstool/crosstool-install/bin/ct-ng menuconfig --图形界面进行配置,若该句无法执行可能是终端窗口太小弹出以下菜单,此菜单主要用于交叉编译工具链的环境配置。

ubuntu下搭建MIPS交叉编译环境

ubuntu下搭建MIPS交叉编译环境

ubuntu下搭建MIPS交叉编译环境 由于要在本地编译程序,在嵌⼊式系统上运⾏,因此需要在本地装编译器,⽬前主要需要mipsel-linux-gcc。

之前⼀直以为可以⽤apt-get install找到,结果找了好久找不到,发现还是得⾃⼰编。

主要是参考上⾯的那个链接,然后这对⾃⼰需求改了改配置。

1. 环境系统:Ubuntu 16.04软件: buildroot该软件可以编译⽤于 mips, arm等等的C编译器。

2. 下载tar -jxvfcd buildroot3. 配置buildroot (重要)make cleanmake menuconfig会出现选择菜单,如下图:选择第⼀项“Target Architecture”, 改成 MIPS (little endian)另外,选择“Toolchain”, 将"kernel headers"改成⾃⼰主机上的Linux版本(及运⾏改编译器的主机)可以在主机上通过 uname -r 或者 cat /proc/version查看。

原⽣的是只有gcc部分,没有g++部分,需要对编译C++程序,则在菜单⾥选择 Enable c++选项(按 y 选取)。

⽤于编译python的配置选项我主要⽤这个来编译python放在嵌⼊式设备系统上⽤,最开始就按照上⾯的选项,编译⼀般的程序没问题,编译python会出现:unknow type name 'wchar_t' 错误,这个需要在这⾥的⼯具⾥选⼏个选项;a1. 在配置⾥选择对wchar的⽀持;a2. 退出Target options,进⼊Target packages,在Target packages⾥再添加⼏个选项(这⾥我没看不配置这个会出什么问题,这个⾥⾯到底做什么的,我直接按照进⼊Interpreter lanaguages and scripting 选项,选择python选项,然后吧core python modules⾥的都选了吧~(编译⼀次太费时了,缺个什么⼜得重新编译这个⼯具链)配置完了后,保存,并退出。

Ubuntu18.04安装arm-linux-gcc交叉编译器的两种方法(附下载地址)

Ubuntu18.04安装arm-linux-gcc交叉编译器的两种方法(附下载地址)

Ubuntu18.04安装arm-linux-gcc交叉编译器的两种⽅法(附下载地址)⽅法⼀: 我们都知道Ubuntu有⼀个专门⽤来安装软件的⼯具apt,我们可以⽤它来全⾃动安装arm-linux-gcc。

此⽅法安装的是最新版的,但是此⽅法需要FQ,否则99%会失败,这就是为什么⽹上⼤多都⽤压缩包安装的原因: ⾸先Ctrl+Alt+T弹出终端,使⽤如下命令进⾏arm-linux-gcc的安装:sudo apt-get install gcc-arm-linux-gnueabihf 使⽤如下命令进⾏arm-linux-g++的安装:sudo apt-get install g++-arm-linux-gnueabihf 如果要卸载时使⽤如下命令进⾏移除,arm-linux-gcc的卸载:sudo apt-get remove gcc-arm-linux-gnueabihf arm-linux-g++的卸载:sudo apt-get remove g++-arm-linux-gnueabihfsudo tar -xjvf /tmp/arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 3.解压完成后,再在(/usr/local)中创建⼀个新⽬录arm,即在Terminal中输⼊以下命令:sudo mkdir /usr/local/arm 4.创建arm⽬录成功后,还需要给它解放全部权限,即在Terminal中输⼊以下命令:sudo chmod 777 /usr/local/arm 5.在解压出来的⽬录中找到并把整个arm-linux-gcc-3.4.5-glibc-2.3.6⽬录复制到刚刚建好的arm⽬录中,命令如下:sudo cp -r gcc-3.4.5-glibc-2.3.6 /usr/local/arm 6.打开(/etc/profile)配置环境变量和库变量,⽬的是以后可以在任何位置使⽤该交叉编译器,命令如下:sudo vi /etc/profile 7.⽤vi或者vim打开后,在⽂件最后添加两⾏,并输⼊以下代码:第⼀⾏是添加执⾏程序的环境变量,第⼆⾏是库⽂件的路径export PATH=$PATH:/usr/local/arm/gcc-3.4.5-glibc-2.3.6/binexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-3.4.5-glibc-2.3.6/lib 8.使⽤source命令重新加载⽣效该配置⽂件source /etc/profile 9.检验是否安装成功,在 Terminal 输⼊以下命令输出版本信息:arm-linux-gcc -v 10.若有以下报错参考解决办法: 报错:bash: /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc-4.2.2: No such file or directory 解决sudo apt-get install libc6-i386 该库中包括ia32-libs, lib32z1, lib32ncurses5等等依赖。

使用cmake-gui交叉编译

使用cmake-gui交叉编译

使用cmake-gui交叉编译CMake是一个跨平台跨编译器的编译工具,它可以简化编译和构建过程。

CMake-GUI是一个基于图形界面的版本,它可以更直观地配置和构建项目。

下面是使用CMake-GUI进行交叉编译的步骤:1. 准备交叉编译环境。

为目标平台准备好交叉编译器,并安装好必要的依赖库,同时建议将交叉编译器路径添加到环境变量中。

2. 安装CMake-GUI。

在Windows下,CMake-GUI可以通过官方网站免费下载并安装。

在Linux下,可以通过包管理器安装,如Ubuntu下通过以下命令安装:```bashsudo apt-get install cmake-qt-gui```3. 创建工程目录。

在交叉编译环境中,创建一个新的项目目录。

使用CMake-GUI时,建议将源代码和构建目录分开存放,创建一个名为"build"的目录作为构建目录。

4. 配置项目。

双击运行CMake-GUI,并打开刚刚创建的工程目录。

在源代码目录和构建目录中分别选择所需的路径。

接着点击"Configure"按钮,选择交叉编译器平台,选择平台后,点击“Finish”按钮开始生成。

在点击"Configure"按钮前,需要注意:- 交叉编译器的路径在Windows和Linux下是不一样的,需要根据实际情况修改;- 如果需要添加自定义的编译选项,可以在"CMakeLists.txt"文件中添加。

5. 构建项目。

在CMake-GUI界面中,设置好编译选项,如编译类型、编译优化级别等。

然后点击"Generate"按钮,开始构建项目。

如果构建成功,我们可以在构建目录中看到生成的二进制可执行文件。

至此,我们使用CMake-GUI完成了交叉编译操作。

需要注意的是,交叉编译的过程可能因环境、依赖库等多种因素出现问题,需要根据具体情况进行调整。

Ubuntu 设置环境变量

Ubuntu 设置环境变量

Ubuntu 设置环境变量在Ubuntu 系统中有两种设置环境变量PATH 的方法。

第一种适用于为单一用户设置PATH,第二种是为全局设置PATH。

第一种方法:在用户主目录下有一个 .bashrc 文件,可以在此文件中加入PATH 的设置如下:export PATH=”$PATH:/your path1/:/your path2/…..”注意:每一个path 之间要用“:“ 分隔。

注销重启X 就可以了。

第二种方法:在/etc/profile中增加。

PATH="$PATH:/home/zhengb66/bin"export PATH环境变量是和Shell紧密相关的,用户登录系统后就启动了一个Shell。

对于Linux来说一般是bash,但也可以重新设定或切换到其它的Shell。

对于UNIX,可能是CShelll。

环境变量是通过Shell命令来设置的,设置好的环境变量又可以被所有当前用户所运行的程序所使用。

对于bash这个Shell程序来说,可以通过变量名来访问相应的环境变量,通过export来设置环境变量。

下面通过几个实例来说明。

1)etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.注:在这里我们设定是为所有用户可使用的全局变量。

2)/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.3)~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息, 当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.注:~在LINUX下面是代表HOME这个变量的。

另外在不同的LINUX操作系统下,这个文件可能是不同的,可能是~/.bash_profile;~/.bash_login 或~/.profile其中的一种或几种,如果存在几种的话,那么执行的顺序便是:~/.bash_profile、~/.bash_login、~/.profile。

gcc交叉编译命令

gcc交叉编译命令

gcc交叉编译命令一、概述GCC(GNU Compiler Collection)是一个自由软件编程语言的编译器系列,包括C、C++、Objective-C、Fortran、Ada等语言的编译器。

交叉编译是指在一台计算机上使用GCC编译生成另一种架构的目标代码,以便在另一种架构的计算机上运行。

本文将介绍GCC交叉编译命令的使用方法,包括安装交叉编译工具链、设置环境变量、配置GCC交叉编译选项等。

二、安装交叉编译工具链1. 下载工具链在进行交叉编译之前,需要先下载对应架构的交叉编译工具链。

可以从各个芯片厂商或开发板厂商的官网下载。

2. 安装工具链将下载好的压缩包解压到指定目录下即可完成安装。

例如:```$ tar -zxvf arm-linux-gcc-4.4.3.tar.gz -C /usr/local/```三、设置环境变量1. 编辑.bashrc文件打开终端并输入以下命令:```$ vi ~/.bashrc```2. 设置环境变量在.bashrc文件中添加以下内容:```export PATH=$PATH:/usr/local/arm-linux-gcc-4.4.3/bin export CROSS_COMPILE=arm-linux-```其中,第一行将交叉编译工具链的bin目录添加到PATH环境变量中,以便在终端中直接使用交叉编译工具链。

第二行设置CROSS_COMPILE环境变量为arm-linux-,以便在Makefile中使用。

3. 使环境变量生效保存并退出.bashrc文件后,执行以下命令使环境变量生效:```$ source ~/.bashrc```四、配置GCC交叉编译选项1. 编写Makefile文件在需要进行交叉编译的项目目录下新建一个名为Makefile的文件,并编辑以下内容:```CC=$(CROSS_COMPILE)gccLD=$(CROSS_COMPILE)ldOBJCOPY=$(CROSS_COMPILE)objcopyCFLAGS=-Wall -O2 -gall: main.binmain.bin: main.elf$(OBJCOPY) -O binary $< $@main.elf: main.o$(LD) -Ttext 0x10000 -o $@ $<main.o: main.c$(CC) $(CFLAGS) -c $< -o $@clean:rm -f *.o *.elf *.bin```2. 解释Makefile文件该Makefile文件定义了三个变量:CC、LD、OBJCOPY。

Ubuntu 10.04运用crosstool-ng-1.9.0建立arm-linux交叉工具链

Ubuntu 10.04运用crosstool-ng-1.9.0建立arm-linux交叉工具链

Ubuntu 10.04下运用crosstool-ng-1.9.0建立arm-linux交叉工具链构建一个交叉工具链供嵌入式系统开发使用是一个令人恐惧的景象,需要钢铁般的意志,需要几天(如果不是几个星期)的功夫,需要具备许多的 Unix 和GNU 知识……”正式基于这一点,我们选择开源工具crosstool-ng,来制作自己的交叉编译工具链。

Crosstool现在也有好几个版本,在这里我选择crosstool-ng-1.9.0这个工具包。

我所选的主机系统是Ubuntu10.04。

在制作交叉编译工具之前要安装各种各样的编译工具,因为Ubuntu系统的方便性,我们可以通过具体的命令在线安装所需的软件。

下面将是具体的制作交叉编译的过程;一、安装所需的工具包$ sudo apt-get install g++ libncurses5-dev bison flex texinfo automake libtool patch gcj cvs cvsd gawk二、下载交叉编译工具所用的文件,在制作交叉编译的过程中,需要在线下载这个编译工具包,考虑到网速的问题和编译的时间问题,提前将这些包下载下来,放在指定的目录下,可以大大节省很多的编译时间,考虑到各种包的下载问题,这个百度文库又不能上传软件包,我就将所有的下载路径附在文章后面,同仁们可以去具体的地方下载!三、安装crosstool-ng-1.9.0.tar.bz2的工具。

安装所需的crosstool-ng-1.9.0,也可在这个地址下/old_news下载crosstool-ng的工具包。

下面是详细的安装步骤:#cd //回到家目录#mkdir crosstool //建立crosstool目录#cp ~/下载/tar/crosstool-ng-1.9.0.tar.bz2 ./crosstool //拷贝crosstool源码包到crosstool目录下#cd crosstool //进入crosstool目录#tar jxvf crosstool-ng-1.9.0.tar.bz2 //解压源码包考虑到后续要用的各种目录,我这里先建立好所需的目录#mkdir crosstool-build crosstool-install src //解压完后建立安装目录编译目录和源码包目录,这几个目录和crosstool-ng-1.9.0目录并列,如下图所示:#cd crosstool-ng-1.9.0 //进入crosstool目录#./configure --prefix=~/crosstool/crosstool-install# make //编译# sudo make install //安装#cd crosstool-build/ //进入crosstool-build目录#cp ../crosstool-ng-1.9.0/samples/arm-unknown-linux-gnueabi/* ./ //拷贝交叉工具链到crosstool-build目录下#mv crosstool.config .config //修改文件名#../crosstool-install/bin/ct-ng menuconfig此刻会出现一个图形配置界面,在此配置界面下,可以按照自己开发板的实际情况来进行配置:1、设定源码包路径和交叉编译器的安装路径。

gcc交叉编译 mips

gcc交叉编译 mips

gcc交叉编译 mipsgcc交叉编译mips一、前言GCC(GNU Compiler Collection,GNU编译器集合)是UNIX-like 系统上一种非常强大的自由软件集,由Richard Stallman及GNU项目社区发起并开发,主要发行版GNU/Linux采用的是GCC编译器。

GCC 可以用来编译几乎所有的编程语言,而且使用GCC也是开发Linux下大多数软件的首选编译器。

GCC提供了非常强大的编译环境,可以用来编译不同架构的编程语言,很多open source的软件都是采用GCC这个编译器来实现它们的编译和链接,同时也可以用来支持特定的架构,比如:MIPS (Microprocessor without Interlocked Pipeline Stages,微处理器没有交叉管道阶段)。

二、gcc交叉编译mips的准备1、首先要确保安装了gcc编译器,编译系统为 Ubuntu 16.04 LTS,在终端下输入gcc --version来查看是否已安装,如果没有安装可以执行以下操作:sudo apt-get install gcc2、安装gcc-mips交叉编译工具:下载mips-linux-gcc-5.3.0.tar.gz并解压:tar -zxvf mips-linux-gcc-5.3.0.tar.gz然后进行安装:cd mips-linux-gcc-5.3.0./configuremakesudo make install3、配置环境变量首先找到mips-linux-gcc-5.3.0的安装目录,比如/usr/local/mipsel-linux-gnueabi/bin,然后修改~/.bashrc文件,在文件末尾添加以下内容:export PATH=$PATH:/usr/local/mipsel-linux-gnueabi/bin 然后执行:source ~/.bashrc三、gcc交叉编译mips的实现1、首先我们需要把源程序文件test.c保存到一个文件夹,比如/home/user/test2、进入该文件夹,然后使用gcc编译这个文件:mipsel-linux-gcc -static test.c -o test需要注意的是,如果编译的源文件中有头文件,比如stdio.h,则需要分别指定这些头文件的路径,比如:mipsel-linux-gcc -I/usr/local/mips-linux-gcc-5.3.0/include -static test.c -otest3、编译完成后,会在/home/user/test目录下生成可执行文件test,这个可执行文件就是交叉编译所得了,可以在MIPS架构的机器上执行该文件。

交叉编译环境搭建

交叉编译环境搭建

我帮他安装完之后写了一个hello world程序测一下安装成功了没有。

用gcc编译成功了,但用arm-linux-gcc来编译的时候却报stdio.h no such file or directory 这个错误。

我以前也装过几次,没发现此类的问题,然后又按照书上的方法试了几次,也都是这样的错误,在别人的电脑上试了还是一样出现这个错误。

在google里面也搜了一下这个问题,发现这个问题别人也遇到过,没什么解决方案。

最后在网上下了一个4.3.2的版本,配置了一下,运行hello world程序,居然没有错误了。

注:我使用的操作系统为:ubuntu11.10,开始使用的arm-linux-gcc 版本为3.3.2.如果有人也出现找不到头文件的情况,希望换个版本的arm-linux-gcc来用一下。

下面介绍一下交叉编译环境的安装全过程。

1.首先下载arm-linux-gcc-4.3.2.tgz,可以到arm Friendly官网上下/download.asp。

2.下载完后解压。

解压可以把文件拷到/usr/local/arm/然后解压tar zxvfarm-linux-gcc-4.3.2.tgz,这是比较笨的做法。

linux提供了简单的方法为什么不用呢。

在任意目录下tar zxvf arm-linux-gcc-4.3.2.tgz -C /注意是大写的“C”,并且大写的“C”和“/”之间有一个空格。

解压完后就是配置环境变量了。

3.在root目录下gedit .bashrc当然你也可以用vim .bashrc个人喜欢用gedit。

在弹出的页面的最后一行加上export PATH=$PATH:/usr/local/arm/4.3.2/bin保存退出4.注销5.检查一下是不是安装好了,打开终端。

输入arm-linux-gcc -v看有没有相应的版本信息输出,输出信息如下所示:[root@localhost ~]# arm-linux-gcc -vUsing built-in specs.Target: arm-none-linux-gnueabiConfigured with: /scratch/julian/lite-respin/linux/src/gcc-4.3/configure--build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi--enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch--with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared--enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2008q3-72' --with-bugurl=https:///GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/libc--with-gmp=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnuea bi-i686-pc-linux-gnu/usr--with-mpfr=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnuea bi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories--with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin Thread model: posixgcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)。

搭建arm-linux-gcc-4.6.1

搭建arm-linux-gcc-4.6.1

Ubuntu11.04中搭建交叉编译环境(arm-linux-gcc-4.6.1版本)声明:本文主要参考/xt_xiaotian/article/details/6836739,并根据实际情况作了一定的修改与说明编译环境:内核名称:Linux内核发行版:2.6.38-11-generic内核版本:#50-Ubuntu SMP Mon Sep 12 21:18:14 UTC 2011硬件架构名称:i686硬件平台:i386操作系统:GNU/Linux当前系统gcc版本号:4.5.2在Linux中建立整个ARM交叉编译环境的整体过程为:1、下载源码包2、建立编译目录并设置环境变量3、安装内核头文件4、安装二进制工具(binutils)5、建立初始编译器工具链(简版gcc)6、建立glibc库7、建立全套编译器工具链(full gcc)8、验证一、下载源码包GNU的所有源码文件都可以到这个地址下载:/gnu/Linux Kernel源代码可以去这里下载:mpc可以去这里下载:下载的源码包如下:binutils-2.21.1.tar.bz2gcc-4.6.1.tar.gzglibc-2.14.tar.gzglibc-linuxthreads-2.5.tar.bz2glibc-ports-2.13.tar.gzgmp-5.0.2.tar.bz2linux-2.6.32.45.tar.gzmpc-0.9.tar.gzmpfr-2.4.2.tar.gz注:mpfr不建议使用3.0.0版本。

mpfr-3.0.0有Bug,会导致gcc编译不过。

二、建立编译目录并设置环境变量选定自己的工作目录,如我选择/opt/embedded作为自己的工作目录。

然后再embedded 中建立build-tools、kernel、tools三个文件夹。

实例:root@ubuntu:/opt/ming# cd /opt/root@ubuntu:/opt# mkdir embeddedroot@ubuntu:/opt# cd embedded/root@ubuntu:/opt/embedded# mkdir build-tools kernel toolsroot@ubuntu:/opt/embedded# cd build-tools/root@ubuntu:/opt/embedded/build-tools# mkdir build-binutils build-boot-gcc build-glibc build-gcc各文件夹的作用如下:/opt/embedded:交叉编译环境的主目录/opt/embedded/build-tools:存放binutils、gcc、glibc等GNU源码和用来编译这些源代码的目录/opt/embedded/kernel:用来存放Linux内核源代码/opt/embedded/tools:用来存放编译好的交叉编译工具和库文件/opt/embedded/build-tools/build-binutils:编译binutils的目录/opt/embedded/build-tools/build-boot-gcc:编译gcc启动部分的目录/opt/embedded/build-tools/build-glibc:编译glibc的目录/opt/embedded/build-tools/build-gcc:编译整个gcc的目录建立好编译目录之后便是设置环境变量(建议直接在~/.bashrc中修改,注意修改之后要重新运行Terminal)。

关于ubuntu与树莓派 qt5交叉编译环境搭建

关于ubuntu与树莓派 qt5交叉编译环境搭建

关于ubuntu与树莓派的qt交叉编译环境的搭建设备及环境版本:1、树莓派镜像2016-02-26-raspbian-jessie.img(官网下载)(绝对不能用stretch版!)2、cross-compile-tools-master.zip3、gcc-4.7-linaro-rpi-gnueabihf.tbz4、qt-everywhere-opensource-src-5.3.2.tar.gz(官网下载)版本要和树莓派中的qt保持一致Ubuntu 提前准备1.1 gcc编译环境安装1.2安装openGL1.3 如果您的ubuntu为64位则需要32位软件支持:sudo apt-get install ia32-libs如果ubuntu版本过提示没有ia32-libs高,请安装下面一套sudo apt-get install libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxc b-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-sync1 libxcb-sync-dev libxcb-render-util0 libxcb-render-util0-dev libxc b-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-glx0-dev (32位的ubuntu可以忽略此步骤)1.4在home中创建文件夹opt用来下载存放工程中需要使用的软件。

*1.5在~/opt中使用git clone git://code.qt.io/qt/qt5.git,拷贝一份qt5取代qt-everywhere-o pensource如使用上述替代方案请在~/opt/qt5文件夹下执行 ./init-repository初始化qt5储存库。

cuda11.0 交叉编译 -回复

cuda11.0 交叉编译 -回复

cuda11.0 交叉编译-回复cuda11.0 交叉编译是指在一台主机上使用主机操作系统将代码编译成针对另一台不同体系结构的计算机或嵌入式系统的可执行代码。

在本文中,将详细介绍如何使用cuda11.0 进行交叉编译的步骤和方法。

第一步:了解交叉编译的概念和原理交叉编译是一种开发方式,用于在一台计算机上编译和构建针对不同体系结构的代码。

这种编译方式可以将源代码从一个平台(主机)编译成另一个平台(目标)上的可执行文件。

交叉编译适用于许多场景,比如开发嵌入式系统、移植软件到不同平台等。

第二步:准备交叉编译环境要进行cuda11.0 的交叉编译,首先要准备好环境。

在主机计算机上安装cuda 开发工具包(CUDA Toolkit)和交叉编译工具链(Cross-Compile Toolchain)。

CUDA Toolkit 是一套由NVIDIA 提供的用于开发加速应用程序的工具集,包括编译器、运行时库和开发工具等。

例如,在Ubuntu 上安装CUDA Toolkit,可以按照以下步骤进行:1. 下载CUDA Toolkit 安装包,可在NVIDIA 官方网站上找到。

2. 使用命令行工具进入安装包所在的目录,执行以下命令进行安装:sudo dpkg -i cuda-toolkit-11-0.deb3. 等待安装完成后,运行以下命令更新环境变量:echo 'export PATH=/usr/local/cuda-11.0/bin:PATH' >> ~/.bashrc echo 'exportLD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64:LD_LIBRARY_PATH' >> ~/.bashrcsource ~/.bashrc第三步:配置交叉编译工具链在完成CUDA Toolkit 的安装后,需要配置交叉编译工具链,以便能够将代码编译为目标平台上的可执行文件。

linux交叉编译环境搭建步骤

linux交叉编译环境搭建步骤

linux交叉编译环境搭建步骤正文:在进行Linux交叉编译之前,我们需要先搭建好相应的交叉编译环境。

下面是搭建步骤的详细说明:步骤一:安装必要的软件包首先,我们需要安装一些必要的软件包,包括GCC、binutils、glibc 以及交叉编译工具链等。

可以通过包管理器来安装这些软件包,比如在Ubuntu上可以使用apt-get命令,CentOS上可以使用yum命令。

步骤二:下载交叉编译工具链接下来,我们需要下载相应的交叉编译工具链。

可以从官方网站上下载已经编译好的工具链,也可以通过源码自行编译得到。

下载好之后,将工具链解压到一个目录下。

步骤三:配置环境变量为了方便使用交叉编译工具链,我们需要将其添加到系统的环境变量中。

可以通过编辑.bashrc文件来实现,添加类似下面的内容:```shellexport CROSS_COMPILE=/path/to/cross-compiler/bin/arm-linux-export ARCH=arm```其中,/path/to/cross-compiler是你下载的交叉编译工具链的路径。

步骤四:测试交叉编译环境在配置好环境变量之后,我们可以通过简单的测试来验证交叉编译环境是否搭建成功。

比如,可以尝试编译一个简单的Hello World程序,并在目标平台上运行。

步骤五:编译其他软件当交叉编译环境搭建成功,并且测试通过之后,我们就可以使用这个环境来编译其他的软件了。

比如,可以使用交叉编译工具链来编译Linux内核、U-Boot引导程序、驱动程序等。

总结:搭建Linux交叉编译环境是进行嵌入式开发的基础工作之一。

在搭建好环境之后,我们可以使用交叉编译工具链来编译适配于目标平台的软件,从而实现在开发主机上进行开发和调试的目的。

ubuntu下建立交叉编译环境

ubuntu下建立交叉编译环境

ubuntu 10.04 建立交叉编译环境arm-linux-gcc-4.3.21. 将arm-linux-gcc-4.3.2.tgz复制到任意路径下;2. 确保安装了标准C开发环境,一句命令搞定:sudo apt-get install build-essential libncurses5-dev;3.在终端进入arm-linux-gcc-4.3.2.tgz存放目录,再sudo tar -zxvf arm-linux-gcc-4.3.2.tgz -C /(注意大写C字母后留一个空格,这样会自动解压缩到/usr/local/4.3.2目录下)修改环境变量,使交叉编译环境生效。

我是执行如下命令:yagerya@yagerya-desktop:~$ echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/gamesyagerya@yagerya-desktop:~$ sudo gedit /etc/environment原文件应为PATH="/usr/local/sbin:/usr/local/bin:/usr /sbin:/usr/bin:/sbin:/bin: /usr/games“将其改为PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin: /sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin"保存退出即可.然后注销重新登录就可使环境变量生效了。

我不推荐大家这样做,我试过了在编译内核时无论执行sudo -s后,再执行arm-linux-gcc -v也没有出现环境变量的信息,故cd /opt/FriendlyARM/mini2440后,无论make zImage或sudo make zImage 都出现无法再到arm-linux的情况!所以我推荐大家这样做:yagerya@yagerya-desktop:~$ vim ~/.profile在这个文件最后添加上自己的环境变量:export PATH=$PATH:/usr/local/arm/4.3.2/bin然后在终端执行source ~/.profile ,即可立即生效。

项目日志

项目日志

宿主机开发环境:ubuntu 12.04目标机:飞凌6410(arm11)12月5日* 环境搭建设置交叉编译器1.设置整个项目在/opt目录下进行,修改权限sudo chown jun /optsudo chgrp jun /opt2.使用厂商提供的交叉编译器:arm-linux-gcc-4.3.2.tgzcd /opttar xvzf arm-linux-gcc-4.3.2.tgz3.修改环境变量sudo vi /etc/environment添加/opt/usr/local/arm/4.3.2/bin:之后为:PATH="/opt/usr/local/arm/4.3.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin: sbin:/bin:/usr/games"保存退出,使之生效. /etc/environment4.检查交叉编译器arm-linux-gcc -v* 配置编译 uboot1.使用厂商提供的uboot:uboot1.1.6-V5.50-2014-09-19.tar.gz2.解压:tar xvzf uboot1.1.6-V5.50-2014-09-19.tar.gzcd uboot1.1.6/3.配置:make forlinx_nand_ram256_config4.编译:make cleanmake5.烧写uboot.bin到开发板*编译内核1.使用厂商提供的内核:FORLINX_linux-2.6.36.2.tar.gz2.解压:tar xvzf FORLINX_linux-2.6.36.2.tar.gz3.编译:make zImage4.拷贝zImage到/tftpboot/目录cp arch/arm/boot/zImage /tftpboot/* 根文件系统制作(使用busybox开源软件)1.下载busybox源码包:busybox-1.21.1.tar.bz22.解压:tar -xvjf busybox-1.21.1.tar.bz23.配置源码:cd busybox-1.21.1/make menuconfig重新定制模块操作命令Linux Module Utilities --->[ ] Simplified modutils (NEW) //去掉[*] insmod //添加[*] rmmod //添加[*] lsmod //添加[*] modprobe //添加[*] Blacklist support//添加[*] depmod //添加取出闪存flash操作命令Miscellaneous Utilities --->[*] nandwrite (NEW) //去掉[*] nanddump (NEW) //去掉保存退出4.修改Makefilevim Makefile +164164 将CROSS_COMPILE ?= 修改为CROSS_COMPILE=arm-linux- 190 将ARCH ?= $(SUBARCH)修改为ARCH=arm5.编译和安装make && make install默认安装在当前目录的_install目录用file命令检查编译结果:file _install/bin/busyboxELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped确保是ARM平台的5.手动在_install创建目录cd _install/ && mkdir dev lib etc/init.d proc sys home mnt var tmp root -p6.添加系统启动配置文件vim etc/inittab//添加如下内容::sysinit:/etc/init.d/rcS::respawn:-/bin/sh::ctrlaltdel:/sbin/reboot::shutdown:/bin/umount -a -r保存退出7.添加文件系统配置文件vim etc/fstab//添加如下内容proc /proc proc defaults 0 0tmpfs /tmp tmpfs defaults 0 0sysfs /sys sysfs defaults 0 0tmpfs /dev tmpfs defaults 0 0保存退出8.添加系统启动服务配置脚本vim etc/init.d/rcS/bin/mount -amkdir /dev/ptsmount -t devpts devpts /dev/ptsecho /sbin/mdev > /proc/sys/kernel/hotplugmdev -s保存退出修改rcS文件权限chmod 777 etc/init.d/rcS9.添加 busybox运行时所需动态库和链接库查看busybox可执行程序所需的动态库arm-linux-readelf -a bin/busybox | grep "Shared"0x00000001 (NEEDED) Shared library: [libm.so.6]0x00000001 (NEEDED) Shared library: [libc.so.6]可知需要动态库为:libc和libm两个动态库当然还要有链接库拷贝所需动态库到根文件系统lib目录下//拷贝标准C库find /opt/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc \( -name "libc-*" -o -name "libc.so*" \) -exec cp -frd {} lib/ \;//拷贝数学运算库find /opt/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc \( -name "libm-*" -o -name "libm.so*" \) -exec cp -frd {} lib/ \;//拷贝动态链接库find /opt/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc \( -name "ld-*" \) -exec cp -frd {} lib/ \;注:在拷贝前将/opt/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc目录下的thumb2目录删除,因为这个目录的库会与在arm模式下需要的库重名,即与armvt目录的有些库重名,这会导致在拷贝时有可能将有用的覆盖掉没用的留下了,最终导致网络文件系统挂载失败。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档