第2章 搭建Linux交叉编译开发环境

合集下载

Linux下libcurl的编译和交叉编译

Linux下libcurl的编译和交叉编译

Linux下libcurl的编译和交叉编译⼀、下载curl源码⼆、创建⽬标输出⽬录 我创建了两个,⼀个放版本、⼀个放arm版本。

# mkdir build_linux build_arm三. 解压⽂件 # tar -xvf curl-7.63.0.tar.xz四. 配置并编译Linux版本: (--prefix指定编译输出安装路径 --enable-static 指定编译静态库)# ./configure --prefix=/home/gec/csdn/curl/build_linux --enable-static# make# make installARM版本:(--prefix指定编译输出安装路径 --enable-static 指定编译静态库 CC指定交叉编译⼯具链)# ./configure --host=arm-linux CC=arm-linux-gcc --prefix=/home/gec/csdn/curl/build_arm --enable-static# make# make install1.此处的 --enable-static 加上没效果,最后还是动态链接。

⾄少这个版本是这样的2.--prefix后⾯⼀定要是绝对路径,不能是相对路径五.移植到arm平台上,因为上⾯的 --enable-static 选项没起作⽤,需要将⽤到的库复制到对应路径,这⾥变态的不是从默认的/lib⽬录下读取库⽂件1.先到libcurl/bin下 readelf -d curl 查看curl的所需的库⽂件及库⽬录我这⾥显⽰库的路径是:“Library rpath: [/home/arm/share/4.开源库/curl-7.63.0/xxx/lib]”2. 在开发板上要创建同样的路径名字,并将库⽂件全部复制 mkdir /home/arm/share/4.开源库/curl-7.63.0/xxx/lib -p cp /nfs/4.开源库/curl-7.63.0/xxx/lib/ /home/arm/share/4.开源库/curl-7.63.0/xxx/lib/ 如果不做上述操作,执⾏curl命令时,不管后⾯是什么,⼀律返回:curl: (48) Error,也不提⽰是不是缺少库所造成的! 六. 复制bin下⾯的curl到开发板上,路径随意参考 不需要openssl需要openssl。

Linux下的软件开发和编译环境配置

Linux下的软件开发和编译环境配置

Linux下的软件开发和编译环境配置在Linux操作系统中,配置适合软件开发和编译的环境是非常重要的。

正确地设置开发环境,可以提高开发效率,同时确保软件的质量和稳定性。

本文将介绍如何在Linux下配置软件开发和编译环境,以帮助开发人员顺利进行开发工作。

一、安装必要的开发工具在开始配置软件开发环境之前,您需要安装一些必要的开发工具。

在Linux中,常用的开发工具包括GCC编译器、Make工具、调试器(如GDB)、版本控制工具(如Git)等。

您可以通过包管理器(如APT、YUM等)来安装这些工具。

以下是安装这些工具的示例命令(以基于Debian的系统为例):```sudo apt-get updatesudo apt-get install build-essentialsudo apt-get install gdbsudo apt-get install git```通过执行这些命令,您可以安装所需的开发工具,以便后续的配置步骤。

二、配置开发环境要配置软件开发环境,您需要设置一些环境变量和配置文件。

以下是一些常见的配置步骤:1. 配置PATH环境变量在Linux中,PATH环境变量用于指定可执行程序的搜索路径。

为了方便地访问开发工具和编译器,您应该将它们所在的目录添加到PATH环境变量中。

您可以通过编辑`.bashrc`文件来实现这一点。

打开终端,输入以下命令编辑文件:```vi ~/.bashrc```在文件末尾添加以下行(假设开发工具的路径为`/usr/local/bin`):```export PATH=$PATH:/usr/local/bin```保存并退出文件。

然后,使用以下命令使更改生效:```source ~/.bashrc```现在,您可以在任何目录下直接运行开发工具和编译器。

2. 配置编辑器选择一个适合您的编辑器来编写代码是很重要的。

在Linux中有多种编辑器可供选择,如Vim、Emacs、Sublime Text等。

beagleboard-xM构建交叉编译环境

beagleboard-xM构建交叉编译环境

玩转BeagleBoard xM——建立虚拟机开发环境和嵌入式Linux系统分类:beagleboard xM linux kernel rootfs 2012-07-28 10:36 343人阅读评论(0) 收藏举报在Beagleboard xM(简称bb)上建立能运行Linux系统,包括了创建启动用的TF卡,编译生成bootloader(MLO和u-boot.bin),编译生成内核镜像文件(uImage或zImage 文件),创建rootfs(Linux根文件系统)等工作。

这些工作需要在一台配置ARM交叉编译环境的Linux系统上完成。

下面分步完成整个系统的建立过程,直至Linux系统在bb上boot起来,进入shell命令行。

STEP 1:建立ARM嵌入式开发环境利用ARM交叉编译环境,可以x86系统上,编译ARM处理器上可执行的目标代码。

主要用于编译bb上的bootloader、内核镜像,以及其它ARM可执行程序。

具体步骤:(1)在VMware上创建一个虚拟机,安装发行版的ubuntu系统,用于建立ARM嵌入式开发环境。

(2)安装arm-linux-gcc,建立ARM交叉编译环境(需要root权限)1、下载arm-linux-gcc-4.3.2.tgz压缩包2、tar -xzvf arm-linux-gcc-4.3.2.tgz,自动解压至/user/local/arm/目录下。

ARM交叉编译器的所有可执行程序在/usr/local/arm/4.3.2/bin/目录下。

3、配置root用户环境变量,修改/etc/bash.bashrc文件#vi /etc/bash.bashrc在最后加上export PATH=$PATH:/usr/local/arm/4.3.2/bin4、测试arm-linux-gcc -v,会执行编译器,正常显示版本信息表示已安装配置成功STEP 2:创建bootloader和boot.scrTI OMAP系列处理器上的bootloader专指x-loader(MLO)和u-boot(u-boot.bin),两者用于完成Linux内核启动前的配置部分硬件系统配置,解压加载内核Image文件并引导内核启动。

建立交叉编译步骤周立功smart2200

建立交叉编译步骤周立功smart2200

建立交叉编译步骤周立功smart2200**建立交叉开发环境**由于目标板平台处理器是ARM,因而需要安装GCC针对ARM的编译器。

适用于μCLinux的编译器为arm-elf-gcc。

安装arm-elf-gcc步骤:(1)将光盘附带的文件arm-elf-tools-20040427.sh拷贝到目录如/usr/src 下,为arm-elf-tools-20040427.sh增加可执行权限(如果已经具有可执行权限,这步可省略)。

注意:增加权限必须具有root权限,若没有root权限,请先为用户增加root权限(命令su)。

#chmod 755 arm-elf-20040427.sh(2)安装arm-elf-gcc。

执行arm-elf-tools-20040427.sh。

./arm-elf-tools-20040427.sh安装完毕后,查看/usr/local/bin目录下是否存在arm-elf-gcc等文件,如果存在,基本可以确定交叉编译器安装成功。

(3)添加交叉编译器的路径。

一般情况下安装过程会自动执行,并在下次启动还有效。

export PATH=$PATH:/usr/local/arm-elf/bin**安装μCLinux**1:将光盘附带的μCLinux源码包uClinux-dist-20040408.tar.gz拷贝到目录如/usr/src下,并解压。

tar xzvf uClinux-dist-20040408.tar.gz解压后,在当前目录下会多出文件夹uClinux-dist,即μCLinux源代码目录。

2:为SmartARM2200开发板和LPC2200芯片打补丁。

将光盘附带的补丁文件uClinux-dist-20040408-lpc-chy-cmj.patch拷贝到当前目录下,并执行:cat uClinux-dist-20040408-lpc-chy-cmj.patch|patch– p1–duClinux-dist为LPC2200打补丁后,在μCLinux平台内核配置的时候将会有LPC2200的选项。

linux交叉编译环境搭建步骤

linux交叉编译环境搭建步骤

linux交叉编译环境搭建步骤在Linux系统下搭建交叉编译环境主要涉及以下几个步骤:2. 配置环境变量:将交叉编译工具链的路径添加到系统的环境变量中以便于使用。

可以在用户的`.bashrc`或`.bash_profile`文件中添加如下行:```bashexport PATH=<path_to_toolchain>/bin:$PATH```其中`<path_to_toolchain>`是指交叉编译工具链所在的路径。

3.设置目标平台的系统根目录:交叉编译时需要使用目标平台的系统库和头文件,因此需要设置目标平台的系统根目录。

可以通过以下方式设置:```bashexport SYSROOT=<path_to_sysroot>```其中`<path_to_sysroot>`是指目标平台的系统根目录。

4.编写一个简单的交叉编译项目:为了验证交叉编译环境是否搭建成功,可以编写一个简单的交叉编译项目进行测试。

例如,编写一个简单的C程序,将其交叉编译为ARM平台下的可执行文件。

```c#include <stdio.h>int maiprintf("Hello, world!\n");return 0;```将上述代码保存为`hello.c`文件。

然后,使用以下命令进行交叉编译:```basharm-linux-gnueabi-gcc -o hello hello.c```编译完成后,会生成一个名为`hello`的可执行文件。

在ARM平台上执行该可执行文件,将输出`Hello, world!`。

以上就是在Linux系统下搭建交叉编译环境的基本步骤。

根据具体的需求,可能还需要进行其他的配置和设置。

linux实验二交叉编译和Makefile实验报告

linux实验二交叉编译和Makefile实验报告
运行gcc编译出来的可执行文件。
[root @localhost hehui]# ./hmily
④使用交叉编译器编译并运行。
A.[root @localhost hehui]# arm-linux-gcc -o hmily ji_oushu.c
B.打开另外一个终端,输入minicom进入板子里去。
C.操作一下命令。
[root @localhost ~]# cd 2008550533
[root @localhost 2008550533]# mkdir hehui
[root @localhost ~]# cd hehui
[root @localhost hehui]# vi ji_oushu.c
/*输出50以内的奇数和偶数*/
④使用gcc编译,查看运行结果。
[root @localhost prime]# gcc prime.c -oprime_hehui
[root @localhost prime]# ./prime_hehui
⑤编写Makefile文件实现第④步功能,并使用make工具生成这个可执行文件。
[root @localhost prime]# rm -r prime_hehui
all:prime
prime:prime.o main.o
$(CC) $(CFLAGS) $^ -o $@
prime.o:prime.c
$(CC) $(CFLAGS) -c $< -o $@
main.o:main.c prime.h
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -fr prime_hehui *.o
clean: 37

Linux交叉编译环境及工具介绍

Linux交叉编译环境及工具介绍

一体化电源Makefile文件介绍:
一体化电源代码目录结构: main---主程序 bin------可执行文件和规约so库 debug---存放主程序各文件的目标文件中间目录
include----主程序用头文件目录
monitor src-----主程序和规约库用头文件目录
ptlmodule---存放规约库文件目录
什么是交叉编译:
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码, 我们就称这种编译器支持交叉编译器。这个编译过程就叫交叉编译。 简单地 说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所 谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Opera ting System)。同一个体系结构可以运行不同的操作系统;同样,同一个操 作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平 台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT 平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。
龙腾蓝天1808交叉编译环境:
1、解压缩到指定目录 tar zxvf tool.tar.gz
2、进入linux-devkit目录 3、./environment-setup 4、进入linux-devkit/bin目录,为arm-arago-linux-gnueabi-g++等工 具建立软链接。例如:ln –s arm-arago-linux-gnueabi-g++ arm-linu x-g++ 5、编辑/etc/profile ,添加环境变量。

linux安装配置交叉编译器arm-linux-gnueabi-gcc

linux安装配置交叉编译器arm-linux-gnueabi-gcc

linux安装配置交叉编译器arm-linux-gnueabi-gcc要使我们在x86架构下运⾏的程序迁移⾄ARM架构的开发板中运⾏时,需要通过交叉编译器将x86下编写的程序进⾏编译后,开发版才能运⾏。

在安装之前我们需要了解,什么是。

⼀、下载交叉编译器1.新版本的下载⼊⼝如下图所⽰:下载流程如下所⽰:“GNU Toolchain Integration Builds → 11.0-2021.03-1 → arm-linux-gnueabihf → gcc-linaro-11.0.1-2021.03-x86_64_arm-linux-gnueabihf.tar.xz。

”注意:随着时间的不同可能版本号有所变化,不过下载流程应给是⼀样的,除⾮⽹站的变化很⼤。

2.历史版本下载⼊⼝如下图所⽰:下载流程如下所⽰:“View Releases → components → toolchain → binaries → 6.2-2016.11 → arm-linux-gnueabihf → gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf.tar.xz”⼆、安装交叉编译器进⼊linux系统,在/usr/local下创建arm⽂件,将下载的交叉编译⼯具链拷贝到linux系统的/usr/local/arm路径下,并进项解压,如下图所⽰:三、设置环境变量打开/etc/profile⽂件sudo vim /etc/profile在⽂件的最后⼀⾏添加交叉编译链的路径,完成后保存退出export PATH=$PATH:/usr/local/arm/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin如下图所⽰:重新加载环境变量的配置⽂件source /etc/profile检验是否安装成功arm-linux-gnueabihf-gcc -v如果出现以下信息说明安装成功。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
g++——gnu的 c++ 编译器。 protoize——与unprotoize相反,将K&R C的源
码转化为ANSI C的形式,函数原型中加入参数 类型。
c++——gnu的c++编译器。
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.2 建立交叉编译开发工具链
d, 建立编译目录: build-binutils——编译binutils的目录 build-boot-gcc——编译gcc 启动部分

build-glibc——编译glibc的目录 build-gcc——编译gcc 全部的目录 gcc-patch——放gcc的补丁的目录
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.2 建立交叉编译开发工具链
2.2.1 编译工具链
以下是一个基于RedHat linux的交叉编译环境的建立过程。 整个编译过程包括: 1. 下载源文件、补丁和建立编译的目录; 2. 建立内核头文件; 3. 建立二进制工具(binutils); 4. 建立初始编译器(bootstrap gcc); 5. 建立c库(glibc); 6. 建立全套编译器(full gcc)。
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.2 建立交叉编译开发工具链
注意:
gcc——gnu 的 C 语言编译器。
unprotoize——将 ANSI C 的源码转化为 K&R C 的形式,去掉函数原型中的参数类 型。
binutils (6) 注意: add2line——将要找的地址转成文件和行号,
它要使用 debug 信息。
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.2 建立交叉编译开发工具链
ar——产生、修改和解开一个存档文件。 as——gnu 的汇编器。 c++filt——C++ 和 java 中有一种重载函数,所用
双实科技
2.2 建立交叉编译开发工具链
2.2.3 验证工具链 注意: 通过上述两种方式建立的工具链,还需要经过验 证方可使用,我们主要通过实际编译一个例子程 序来验证。
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.3 配置主机服务
ld——gnu 的连接器。 nm——列出目标文件的符号和对应的地址。 objcopy——将某种格式的目标文件转化成另外格
式的目标文件。 objdump——显示目标文件的信息。
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
在嵌入式软件开发过程中,有些主机服务是必要 的,同时也会为我们的开发工作带来便利。
这里主要介绍四种主机服务:samba、DHCP、 TFTP和NFS。
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.3 配置主机服务
2.2 建立交叉编译开发工具链
ranlib——为一个存档文件产生一个索引,并将这 个索引存入存档文件中。
readelf——显示elf格式的目标文件的信息。 size——显示目标文件各个节的大小和目标文件
的大小。 strings——打印出目标文件中可以打印的字符串,
有个默认的长度,为4。 strip——剥掉目标文件的所有的符号信息。
的重载函数最后会被编译转化成汇编的标号, c++filt 就是实现这种反向的转化,根据标号得到 函数名。 gasp——gnu 汇编器预编译器。
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.2 建立交叉编译开发工具链
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.3 配置主机服务
4) 要设置每个 Samba 用户的口令,使用以下命 令(把username 替换为每个用户的用户名) 5) 加密口令必须在Samba配置文件中被启用 6) 在shell提示下键入 service smb restart来确定 smb服务被启动 7)为避免每次启动主机都要手工启动samba服务, 使用命令使得samba服务在每次系统启动时都默 认执行
注意: 然后还要修改libc.so文件,将GROUP ( /lib/libc.so.6 /lib/libc_nonshared.a) 改为:GROUP ( libc.so.6 libc_nonshared.a) 这样连接程序ld就会在 libc.so 所在的目录查找它 需要的库,因为主机/lib目录可能已经装了一个相 同名字的库,一个为编译可以在宿主机上运行的 程序的库,而不是用于交叉编译的。
为目标处理器编译好的工具和元件。
其中,第一部分包括执行在开发主机上的交叉编 译工具,有GNU交叉编译器GCC、Binutils和 GDB等。
第二部分是一些已经编译好的、可以在目标开发 板上运行的工具和库。这些工具和库可以用来建 立一个Linux的Roofs文件系统。
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.2 建立交叉编译开发工具链
2.2.2 下载工具链 这里主要介绍一下Denx公司发布的一整套开放源码
的 嵌 入 式 Linux 开 发 工 具 链 ——ELDK (Embedded Linux Development Kit) ELDK可以安装和运行在以下主机环境中: Fedora Core 1, 2 , 3 Red Hat Linux 7.3, 8.0, 9 SuSE Linux 8.x, 9.0, 9.1, 9.2
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.2 建立交叉编译开发工具链
(1) 下载源文件、补丁和建立编译的目录 (2) a, 下载:linux-2.4.21+rmk2;binutils-2.10.1;
gcc-2.95.3;glibc-2.2.3;glibc-linuxthreads2.2.3 (3) b, 建目录:/home/xxx/embedded 下建立三个 子目录 build-tools、kernel 和 tools (4) c, 需要输出环境变量
2.3.1 配置samba Samba服务使Linux和Windows之间实现文件共享,
方便对文件的编辑。 1) 修改samba配置文件/etc/samba/smb.conf 2) 为 Samba 创建一个单独的口令文件。要根据 你的现存 /etc/passwd 文件来创建 3) 改变Samba口令文件的权限许可,因此只有 根用户才有读写权限
linuxthreads-2.2.3.tar.gz源代码 (7) b,进入build-glibc目录配置glibc (8) c,编译和安装 glibc
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.2 建立交叉编译开发工具链
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.2 建立交叉编译开发工具链
(4) 建立初始编译器(bootstrap gcc) a,进入 build-tools 目录,将 gcc 源代码解 压 b,然后进入gcc-2.95.3目录给gcc打上补丁 c,配置boostrap gcc, 后面要用bootstrap gcc 来编译 glibc 库 d,编译并安装boot-gcc
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.2 建立交叉编译开发工具链
(6) 建立全套编译器(full gcc) (7) 在建立boot-gcc 的时候,我们只支持了C。到
这里,我们就要建立全套编译器,来支持C和 C++ (8) 注意:
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.2 建立交叉编译开发工具链
ELDK包括了一个安装工具和许多RPM包,他们 可以安装到用户的交叉编译的主机的硬盘中。 ELDK的RPM包可以分为2种:
嵌入式Linux开发工具;
的目
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.2 建立交叉编译开发工具链
(2) 建立内核头文件 (3) a, 把内核源代码放入$PRJROOT /kernel 目录 (4) b,给 Linux 内核打上补丁 (5) c,编译内核生成头文件 (6) d, 建立正确的链接
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
相关文档
最新文档