当前位置:首页 » 编程软件 » 自编译交叉编译自展习题

自编译交叉编译自展习题

发布时间: 2022-07-20 00:05:40

Ⅰ 什么是交叉编译

简单的说,如果你开发嵌入式,也就是制作小的带MCU(CPU)的智能电子产品。你必须保证你在电脑上开发编译出的代码,在你的产品上也要能够运行,这时就需要在你的电脑里安装交叉编译工具,实现上述功能。

Ⅱ 交叉编译器的交叉编译

在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。
有时是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。
交叉编译这个概念的出现和流行是和嵌入式系统的广泛发展同步的。我们常用的计算机软件,都需要通过编译的方式,把使用高级计算机语言编写的代码(比如C代码)编译(compile)成计算机可以识别和执行的二进制代码。比如,我们在Windows平台上,可使用Visual C++开发环境,编写程序并编译成可执行程序。这种方式下,我们使用PC平台上的Windows工具开发针对Windows本身的可执行程序,这种编译过程称为native compilation,中文可理解为本机编译。然而,在进行嵌入式系统的开发时,运行程序的目标平台通常具有有限的存储空间和运算能力,比如常见的 ARM 平台,其一般的静态存储空间大概是16到32MB,而CPU的主频大概在100MHz到500MHz之间。这种情况下,在ARM平台上进行本机编译就不太可能了,这是因为一般的编译工具链(compilation tool chain)需要很大的存储空间,并需要很强的CPU运算能力。为了解决这个问题,交叉编译工具就应运而生了。通过交叉编译工具,我们就可以在CPU能力很强、存储空间足够的主机平台上(比如PC上)编译出针对其他平台的可执行程序。
要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(cross compilation tool chain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。

Ⅲ 什么是交叉编译

由于嵌入式系统是借助PC(宿主机)来进行编写、编译和调试程序的。宿主机一般是Linux系统,它编译的程序是要在嵌入式系统上运行而非在宿主机本地运行,那么宿主机需要使用某种特定的交叉编译器,编译出能在目标系统上运行的程序,这就是交叉编译。
如你是初学嵌入式Linux,建议你看看ZLG致远电子的开发板,资料比较齐全。
由于嵌入式系统是借助PC(宿主机)来进行编写、编译和调试程序的。宿主机一般是Linux系统,它编译的程序是要在嵌入式系统上运行而非在宿主机本地运行,那么宿主机需要使用某种特定的交叉编译器,编译出能在目标系统上运行的程序,这就是交叉编译。

如你是初学嵌入式Linux,建议你看看ZLG致远电子的开发板,资料比较齐全。

Ⅳ 交叉编译问题(交叉工具 arm-linux-gcc 4.5.1 系统 REDHAT Linux 6 内核 2.6.32)

ld 中有-( 和 -)选项,它可以使其间的库被连接多次,用法:
1、用gcc传递
gcc t1.c -Xlinker "-(" -lc -lm -Xlinker "-)"

2、或者在ld中使用:
ld -static t1.o /usr/lib/crti.o /usr/lib/crt1.o /usr/lib/crtn.o -\( -lc -lm -\)

具体可以参考man ld。

Ⅳ C交叉编译的问题

最前面的一半理解正确,后边理解不太合理
交叉编译,就是在一种平台用专用的编程工具编译生成另一种平台的程序

Ⅵ 编译器开发的四种技术

编译程序的开发常常采用这四种:自编译、交叉编译、自展和移植等技术实现。

Ⅶ 如何交叉编译应用程序,技巧,注意事项

如果你程序中需要读取某个文件夹下的文件则须注意:
假如你的所有文件都放在一个名为test的文件夹下,当然也包括main.cpp,同时程序需要读取test/input文件夹下的文件,比如说图片,这时在程序中路径你就需按如下写:input/(请注意这个斜线的方向)

不知道为什么OpenCV程序中如果有imwirte、waitKey函数(不知道是哪个的原因还是都有),虽然交叉编译会通过,但当你把编译好的二进制可执行程序拷贝到ARM平台下执行,会出现错误。(可能是当初OpenCV库交叉编译时没编译完全,当然这主要是交叉编译平台缺少某些软件;也可能是ARM平台系统中缺少某些软件造成的)

Ⅷ 什么是交叉编译,为什么要使用交叉编译

交叉编译的概念(来自网络):

简单地说,就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。
举个例子:
我们在Linux系统比如Ubuntu上编写的C程序完全可以拿到Windows系统上正常运行。

热点内容
java等待 发布:2025-02-07 07:28:24 浏览:611
vs编译器会自己加空格吗 发布:2025-02-07 07:23:05 浏览:174
光遇切换账号安卓要输入些什么 发布:2025-02-07 07:10:20 浏览:501
多角线算法 发布:2025-02-07 07:08:56 浏览:273
有效提高ftp传输速度 发布:2025-02-07 07:06:47 浏览:703
寒灵之剑脚本 发布:2025-02-07 06:57:12 浏览:119
解压的窗口 发布:2025-02-07 06:44:34 浏览:798
android身份证 发布:2025-02-07 06:36:43 浏览:431
python的库在哪 发布:2025-02-07 06:30:24 浏览:349
带锁的铅笔如何改密码 发布:2025-02-07 06:18:05 浏览:165