导航:首页 > 源码编译 > 系统构建编译

系统构建编译

发布时间:2022-06-13 02:34:14

A. 如何建立linux系统下交叉编译环境

最近有很多朋友在探讨关于建立Linux交叉编译环境的问题,下面就一些问题作一个说明,以期抛砖引玉。 基于Linux操作系统的应用开发环境一般是由目标系统硬件(开发板)和宿主PC机所构成。目标硬件开发板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主PC机来完成(所以称为交叉编译)。双方之间一般通过串口,并口或以太网接口建立连接关系。 但在此我建议构建如下的交叉编译环境,适合个人或研发小组使用:单独拿出一台PC机(PII以上即可,就用以前淘汰的旧机器就可以),在该PC上安装桌面的Linux操作系统(如Red Hat Linux 8.0及以上),可以采用默认的安装选项(注意要包含FTP服务),这台PC作为Linux服务器,除管理员以外,一般不直接让其他人去操作。 将该Linux服务器接入局域网,并新建一些合法用户,以便其他的PC机(在此我们将其称为工作站)的合法用户能访问到Linux服务器。而其他的PC机(工作站)仍然使用Windows操作系统,原来干啥继续干啥。 需要的软件工具包括: 1、FTP客户端程序(如Cuteftp,可到网上下载)。 2、Telnet工具(如SecureCRT,可到网上下载)。 3、移植到某一特定ARM平台的Linux操作系统内核源码(一般由销售商整理提供)。 4、GNU编译工具,可由相关网站下载,或由销售商整理提供。 在工作站安装:在某工作站PC上安装FTP客户端程序和Telnet工具,安装完毕后应该可以在该工作站PC和Linux服务器之间进行文件的传输,并在工作站PC可以通过Telnet登陆到Linux服务器(可能需要将Linux服务器的防火墙服务关闭才能完成)。 在Linux服务器安装:将工作站PC上的Linux操作系统内核源码压缩包和GNU编译工具通过FTP传送到Linux服务器的某个目录(如合法的用户目录),然后在该目录下解压,并将GNU编译工具安装到默认的工作目录即可,以上工作通过在工作站PC使用Telnet工具完成,而不需要在Linux服务器上进行。 Linux操作系统内核的编译:Linux操作系统内核的编译一般有一个比较固定的步骤,会根据MakeFile文件的不同而略有差异,可参考相关文档,编译的工作在工作站PC使用Telnet工具完成。 按固定的步骤编译内核完成以后,会在相应目录生成可执行的二进制文件,通过FTP将该可执行的二进制文件传回工作站PC,然会再通过ADS或SDT下的烧写工具写入开发板的Flash即可。 (T004)

B. 怎么在linux下搭建C的编译环境!!

linux下c程序的编辑,编译和运行以及调试
要使用的工具:
编辑:vim(vi)
编译和运行:gcc
调试:gdb
1.
安装很简单(以下是以在centos中安装为例):
yum
vim
gcc
gdb
2.
使用vim编辑源文件
首先,打开终端练下手:
vim
hello.c
3.
(进入一般模式)
按下"i",进入编辑模式,在编辑模式下输入:
#include

int
main(){
printf("hello,
world!\n");
return
0;
}
4.
输入完成,按"esc"键,回到一般模式,然后按下":wq",即可保存并退出vim。

C. 适合win10系统的c语言编译器

桌面操作系统

对于当前主流桌面操作系统而言,可使用 VisualC++、GCC以及 LLVM Clang 这三大编译器。

Visual C++(简称 MSVC)只能用于 Windows 操作系统;GCC 和 LLVM Clang除了可用于Windows操作系统之外,主要用于 Unix/Linux操作系统。

像现在很多版本的 Linux 都默认使用 GCC 作为C语言编译器,而像 FreeBSD、macOS 等系统默认使用 LLVM Clang 编译器。由于当前 LLVM 项目主要在 Apple 的主推下发展的,所以在 macOS中,Clang 编译器又被称为 Apple LLVM 编译器。

MSVC 编译器主要用于 Windows 操作系统平台下的应用程序开发,它不开源。用户可以使用 Visual Studio Community 版本来免费使用它,但是如果要把通过 Visual Studio Community 工具生成出来的应用进行商用,那么就得好好阅读一下微软的许可证和说明书了。

而使用 GCC 与 Clang 编译器构建出来的应用一般没有任何限制,程序员可以将应用程序随意发布和进行商用。

MSVC 编译器对 C99 标准的支持就十分有限,加之它压根不支持任何 C11 标准,所以本教程中设计 C11 的代码例子不会针对 MSVC 进行描述。所幸的是,Visual Studio Community 2017 加入了对 Clang 编译器的支持,官方称之为——Clang with Microsoft CodeGen,当前版本基于的是 Clang 3.8。

也就是说,应用于 Visual Studio 集成开发环境中的 Clang 编译器前端可支持 Clang 编译器的所有语法特性,而后端生成的代码则与 MSVC 效果一样,包括像 long 整数类型在 64 位编译模式下长度仍然为 4 个字节,所以各位使用的时候也需要注意。

为了方便描述,本教程后面涉及 Visual Studio 集成开发环境下的 Clang 编译器简称为 VS-Clang 编译器。

嵌入式系统

而在嵌入式系统方面,可用的C语言编译器就非常丰富了,比如:

D. 如何用gentoo交叉编译一个基本系统

嵌入式系统的编译环境
为某个平台开发软件,首先需要一个编译环境。一般来说,编译环境包括三部分:工具 链/运行环境/编译方法。对于嵌入式系统来说,常见的编译环境有三种:

本地环境。如很流行的Ubuntu for ARM,利用官方制作好的目标机镜像(通常包含了 编译环境),直接在目标机上编译/安装软件,与PC机开发完全一样。这种方法简单省 事。缺点也显而易见,编译速度慢,耗时长,特别是较大的软件包(如xbmc)的时候, 程序员不是停下来喝杯咖啡就可以收摊,恐怕得打场通宵dota后才能看到结果 了…(或许distcc能有所改善)

虚拟环境。在PC上建立目标机的虚拟环境,如QEMU-ARM,然后chroot到虚拟环境 中编译/安装软件。这种方法利用了PC的处理能力,速度比本地环境要快得多,但 QEMU并不能完美的模拟目标机环境,如不支持某些系统调用等,这可能导致它不能 正确的编译某些软件。

交叉编译。为目标机交叉编译软件,这是最常规的办法,也是上面两种方法实现的基 础。说交叉编译是“脏活”,是因为需要手工解决软件包的所有依赖问题,手工编译 每一个软件包,并且解决软件包对目标机兼容问题… 看网上铺天盖地关于求教/指导 某个软件包如何正确交叉编译就知道,有多少程序员在被它虐?

gentoo下的交叉编译
gentoo是一个metadistribution,从源代码构建整个系统,同时支持很多不同的体 系如alpha/arm/hppa/ppc/sh/sparc/s390等,也为交叉编译提供了便利的工具,这是 其它二进制发行版没有办法比拟的(scratchbox也显得弱爆了)。

gentoo下的交叉编译通过crossdev和portage来实现。portage带来的好处是自 动解决依赖和自动升级更新系统,跟本机环境一样。

制作工具链
crossdev用来制作交叉工具链,并且还提供了交叉编译环境下的emerge的辅助脚本。如 下编译arm平台的工具链:

$ sudo crossdev -t arm-supertux-linux-gnueabi
这样,crossdev最终制作了符合“gentoo规范”的arm交叉编译器。

运行环境
crossdev生成/usr/arm-supertux-linux-gnueabi/目录作为目标系统 $buildroot。编译后生成的目标会被emerge到$buildroot,编译时依赖的环境(如 链接库/头文件/pkgconfig等)也都在$buildroot。

交叉编译
有了工具链/运行环境,使用的crossdev封装过的emerge,就可以自由的emerge了。 如交叉编译bash:

$ sudo emerge-arm-supertux-linux-gnueabi -avu bash
porage会自动把bash的依赖如ncurses/readline一起emerge到$buildroot。 交叉编译就是变得如此简单…

碰到的问题
站在巨人的肩膀上可以看的更远,前提是我们先要爬上巨人的肩膀。portage是一个快 速更新迭代的系统,并不完美,维护者没有办法测试每个软件包的所有兼容性。所以, 当你想安装一个图形环境如$emerge -avu enlightenment时,很可能会出现错误。但 portage提供了细粒度的控制帮助解决这样的问题。下面是我碰到过一些情形和解决方 法:

由于软件包的环境变量引起的问题,如链接库指向了/usr/bin,而非 $buildroot。可以配置$buldroot/etc/portage/env/目录下相应的文 件,portage会自动source该文件,从而改变编译时的环境。

portage没有包含该软件或portage自身的bug引起,如默认使能了某个在目标机 平台不能使用的特性。建立一个针对目标机的overlay,自己编写相应软件包的 ebuild文件指导portage进行交叉编译。

当某个软件包分阶段编译时,如perl编译时先生成miniperl,通过miniperl最 后生成perl目标映像。由于miniperl被交叉编译器生成目标机的映像,正常情况 下不能主机环境中继续运行生成最终的目标映像。这就要借助qemu-arm+binfmt模 拟目标机环境,让miniperl在主机环境中也能无缝的运行。

从形式上看,处理上面几种情况,也是“脏活”。不仅需要了解该软件包的编译环境, 还需要了解portage的原理,还要知道ebuild的书写语法。但是,与传统的交叉编译 方式比起来,这是一劳永逸的工作,别人使用我的运行环境和overlay,即不需再做什 么就能生成最终的目标机系统。

E. 如何在安卓系统下构建c++编译环境

这个有点难,现在安卓能用的(我知道的)只有一个软件C4droid可以在android系统中编译c/c++:

编译界面:

F. 如何在mac下搭建C/C++,Java的编译环境

步骤如下:
1. Mac OS X 本身已经安装好 jdk,所以搭建 Java Eclipse环境很简单,只需要下载适合系统的 Eclipse即可,首先查看系统是几位的(点击 Mac 屏幕左上角的苹果 Logo,选择“关于本机”,在弹出的方形窗口里点击“更多信息…”按钮,再点击"系统报告…"按钮,在“软件”一栏就能看到目前你的苹果电脑 Mac OS X 系统是否开启 64 位运算了。)
2.下载 Eclipse( Java 和 C/C++的都需要)http://www.eclipse.org/downloads/
3.安装 gcc编译器 XCode(为 Eclipse Java集成 C/C++做准备)。
判断系统里是否已经安装 gcc编译器的方法是,打开一个终端窗口(在实用工具文件夹里),输入命令 g++,没有则输出 command not found,若安装了则输出 not input files。 XCode在 mac电脑的随机安装光盘里就有,最新版可以上苹果官网上下载(http://developer.apple.com/technologies/xcode.html),但是需要注册一个 Apple Developer帐号后才能下载。按照安装程序步骤进行安装就可以了。 安装完后打开xcode,Preferences里面有个Downloads里面有个components选项,里面有个command line tools 安装上即可。
4. Eclipse整合 Java与 C/C++
解压缩刚下载下来的两个版本Eclipse (注意放在不同的地方,防止因为文件名相同覆盖),然后将C/C++ 版本的Eclipse 里面的plugins 文件夹中的内容全部复制,粘贴到Java 版本的Eclipse 里面的plugins 文件夹下面(注意:不能覆盖已有的文件或文件夹),OK 工具都弄好了,现在就剩下测试了。

5. 先创建一个 Java工程

6. 创建一个 C++项目

7. 编译、运行程序

G. C语言中构建文件和编译文件有什么区别拜托,谢谢

不大清楚LZ的问题实质
但是可以简单说 编译过程是把你编写的程序 转化成一种可执行文件 在电脑上运行。
构建 可能是构建某种工程或者系统吧? 更多的侧重在各个执行文件的搭配 相互调用上吧
希望有用

H. 从linux内核到嵌入式系统的构建。可以简单说一下基本步骤吗。

这样说吧,先给你普及一下嵌入式系统的组成:
一般来说,嵌入式操作系统大都由三部分组成,分别是bootloader、kernel、rootfs,也就是引导启动程序,内核,根文件系统。
所以要构建一个嵌入式系统不是从linux内核开始的,完整步骤应该是
先拿到一种bootloader(如u-boot1.1.6)源码,修改编译生成boot.bin的可执行引导镜像文件,并烧写到嵌入式设备的第一个分区里。必须从0x0开始。
然后拿到一种kernel源码(如linux-2.6.18),修改编译生成zImage或uImage这样的可执行的内核镜像文件,并烧写到嵌入式设备的第二分区内。
最后通过buybox这样的软件构建rootfs,并编译成进行,烧写到嵌入式设备的第三个分区内。设置好所有启动参数后,就构建完成了一个基本的嵌入式(linux)系统。

I. windows7怎么搭建linux编译环境

下载安装虚拟机运行Linux系统,在虚拟系统中进行模拟编辑。

阅读全文

与系统构建编译相关的资料

热点内容
python怎么调用knn 浏览:807
excel怎么保存pdf 浏览:68
模拟退火算法matlab代码 浏览:115
算法工程师年龄大了以后怎么办 浏览:261
人教版高中化学pdf 浏览:706
pic单片机网口编程 浏览:25
大学必须学python吗 浏览:870
养什么植物解压 浏览:464
华为云服务器怎么装 浏览:481
ensp查看配置好的命令 浏览:85
短视频推荐系统python 浏览:805
加密超级大师怎么恢复文件 浏览:274
浏览器下载图片解压失败 浏览:197
android抢单 浏览:22
电信用联通游戏服务器地址 浏览:75
安卓缺什么软件 浏览:221
安卓app如何植入群号 浏览:765
php排序按钮 浏览:637
php位异或运算 浏览:866
服务器共享型有什么坏处 浏览:28