皮皮网
皮皮网

【源码pca】【linux内核源码调优】【贴吧源码小程序】gcc 7.2源码安装教程

来源:vb 打印源码 发表时间:2024-11-06 14:00:26

1.如何为嵌入式开发建立交叉编译环境
2.MRTGMRTG的码安安装配置
3.wanniertool 编译
4.Ubuntu Server23.10部署安装Redis7.2.3
5.在window上使用qemu虚拟机启动树莓派镜像
6.AIX7.2下安装和使用GCC来编译强大的编程语言C代码

gcc 7.2源码安装教程

如何为嵌入式开发建立交叉编译环境

       ã€€ã€€ä¸‹é¢æˆ‘们将以建立针对arm的交叉编译开发环境为例来解说整个过程,其他的体系结构与这个相类似,只要作一些对应的改动。我的开发环境是,宿主机 i-redhat-7.2,目标机 arm。

       ã€€ã€€è¿™ä¸ªè¿‡ç¨‹å¦‚下

       ã€€ã€€1. 下载源文件、补丁和建立编译的目录

       ã€€ã€€2. 建立内核头文件

       ã€€ã€€3. 建立二进制工具(binutils)

       ã€€ã€€4. 建立初始编译器(bootstrap gcc)

       ã€€ã€€5. 建立c库(glibc)

       ã€€ã€€6. 建立全套编译器(full gcc)

       ã€€ã€€ä¸‹è½½æºæ–‡ä»¶ã€è¡¥ä¸å’Œå»ºç«‹ç¼–译的目录

       ã€€ã€€1. 选定软件版本号

       ã€€ã€€é€‰æ‹©è½¯ä»¶ç‰ˆæœ¬å·æ—¶ï¼Œå…ˆçœ‹çœ‹glibc源代码中的INSTALL文件。那里列举了该版本的glibc编译时所需的binutils 和gcc的版本号。例如在 glibc-2.2.3/INSTALL 文件中推荐 gcc 用 2.以上,binutils 用 2..1 以上版本。

       ã€€ã€€æˆ‘选的各个软件的版本是:

       ã€€ã€€linux-2.4.+rmk2

       ã€€ã€€binutils-2..1

       ã€€ã€€gcc-2..3

       ã€€ã€€glibc-2.2.3

       ã€€ã€€glibc-linuxthreads-2.2.3

       ã€€ã€€å¦‚果你选的glibc的版本号低于2.2,你还要下载一个叫glibc-crypt的文件,例如glibc-crypt-2.1.tar.gz。 Linux 内核你可以从www.kernel.org 或它的镜像下载。

       ã€€ã€€Binutils、gcc和glibc你可以从FSF的FTP站点ftp://ftp.gun.org/gnu/ 或它的镜像去下载。 在编译glibc时,要用到 Linux 内核中的 include 目录的内核头文件。如果你发现有变量没有定义而导致编译失败,你就改变你的内核版本号。例如我开始用linux-2.4.+vrs2,编译glibc-2.2.3 时报 BUS_ISA 没定义,后来发现在 2.4. 开始它的名字被改为 CTL_BUS_ISA。如果你没有完全的把握保证你改的内核改完全了,就不要动内核,而是把你的 Linux 内核的版本号降低或升高,来适应 glibc。

       ã€€ã€€Gcc 的版本号,推荐用 gcc-2. 以上的。太老的版本编译可能会出问题。Gcc-2..3 是一个比较稳定的版本,也是内核开发人员推荐用的一个 gcc 版本。

       ã€€ã€€å¦‚果你发现无法编译过去,有可能是你选用的软件中有的加入了一些新的特性而其他所选软件不支持的原因,就相应降低该软件的版本号。例如我开始用 gcc-3.3.2,发现编译不过,报 as、ld 等版本太老,我就把 gcc 降为 2..3。 太新的版本大多没经过大量的测试,建议不要选用。

       ã€€ã€€å›žé¡µé¦–

       ã€€ã€€2. 建立工作目录

       ã€€ã€€é¦–先,我们建立几个用来工作的目录:

       ã€€ã€€åœ¨ä½ çš„用户目录,我用的是用户liang,因此用户目录为 /home/liang,先建立一个项目目录embedded。

       ã€€ã€€$pwd

       ã€€ã€€/home/liang

       ã€€ã€€$mkdir embedded

       ã€€ã€€å†åœ¨è¿™ä¸ªé¡¹ç›®ç›®å½• embedded 下建立三个目录 build-tools、kernel 和 tools。

       ã€€ã€€build-tools-用来存放你下载的 binutils、gcc 和 glibc 的源代码和用来编译这些源代码的目录。

       ã€€ã€€kernel-用来存放你的内核源代码和内核补丁。

       ã€€ã€€tools-用来存放编译好的交叉编译工具和库文件。

       ã€€ã€€$cd embedded

       ã€€ã€€$mkdir build-tools kernel tools

       ã€€ã€€æ‰§è¡Œå®ŒåŽç›®å½•ç»“构如下:

       ã€€ã€€$ls embedded

       ã€€ã€€build-tools kernel tools

       ã€€ã€€3. 输出和环境变量

       ã€€ã€€æˆ‘们输出如下的环境变量方便我们编译。

       ã€€ã€€$export PRJROOT=/home/liang/embedded

       ã€€ã€€$export TARGET=arm-linux

       ã€€ã€€$export PREFIX=$PRJROOT/tools

       ã€€ã€€$export TARGET_PREFIX=$PREFIX/$TARGET

       ã€€ã€€$export PATH=$PREFIX/bin:$PATH

       ã€€ã€€å¦‚果你不惯用环境变量的,你可以直接用绝对或相对路径。我如果不用环境变量,一般都用绝对路径,相对路径有时会失败。环境变量也可以定义在.bashrc文件中,这样当你logout或换了控制台时,就不用老是export这些变量了。

       ã€€ã€€ä½“系结构和你的TAEGET变量的对应如下表

       ã€€ã€€ä½ å¯ä»¥åœ¨é€šè¿‡glibc下的config.sub脚本来知道,你的TARGET变量是否被支持,例如:

       ã€€ã€€$./config.sub arm-linux

       ã€€ã€€arm-unknown-linux-gnu

       ã€€ã€€åœ¨æˆ‘的环境中,config.sub 在 glibc-2.2.3/scripts 目录下。

       ã€€ã€€ç½‘上还有一些 HOWTO 可以参考,ARM 体系结构的《The GNU Toolchain for ARM Target HOWTO》,PowerPC 体系结构的《Linux for PowerPC Embedded Systems HOWTO》等。对TARGET的选取可能有帮助。

       ã€€ã€€4. 建立编译目录

       ã€€ã€€ä¸ºäº†æŠŠæºç å’Œç¼–译时生成的文件分开,一般的编译工作不在的源码目录中,要另建一个目录来专门用于编译。用以下的命令来建立编译你下载的binutils、gcc和glibc的源代码的目录。

       ã€€ã€€$cd $PRJROOT/build-tools

       ã€€ã€€$mkdir build-binutils build-boot-gcc build-gcc build-glibc gcc-patch

       ã€€ã€€build-binutils-编译binutils的目录

       ã€€ã€€build-boot-gcc-编译gcc 启动部分的目录

       ã€€ã€€build-glibc-编译glibc的目录

       ã€€ã€€build-gcc-编译gcc 全部的目录

       ã€€ã€€gcc-patch-放gcc的补丁的目录

       ã€€ã€€gcc-2..3 的补丁有 gcc-2..3-2.patch、gcc-2..3-no-fixinc.patch 和gcc-2..3-returntype-fix.patch,可以从 ,找到相应的装教教程视频。视频中详细介绍了如何进行WannierTool的码安编译,包括运行命令mpirun -np wt.x。装教此命令需在拥有wt.in文件和wannier hr.dat文件的码安环境下执行。

       在整个编译过程中,装教源码pca我留意到视频中强调了对环境的码安细心检查,确保所有依赖项安装完毕且配置正确。装教在实际操作中,码安这一步骤是装教至关重要的,能避免后续过程中出现的码安未知错误。

       通过仔细按照教程步骤操作,装教最终成功完成了WannierTool的码安编译。这个过程不仅锻炼了我的装教编程技能,也让我对WannierTool的码安使用有了更深的理解。

       回顾整个过程,我深刻体会到细节决定成败。在编程世界中,linux内核源码调优哪怕是一个小小的配置错误都可能成为解决问题的拦路虎。因此,细致的准备工作和对环境的严格检查,成为了我这次成功编译WannierTool的关键。

Ubuntu Server.部署安装Redis7.2.3

       Ubuntu Server .部署安装Redis 7.2.3指南

       经过多次尝试,我整理出在Ubuntu Server .上安装Redis 7.2.3的简洁流程,方便随时重复部署。

       1. Ubuntu Server安装基础

       从官网下载Ubuntu Server ISO镜像,使用8GB内存和GB硬盘创建虚拟机,安装过程保持默认设置,直到重启。重启时遇到cdrom错误,只需确认继续,即卸载安装镜像。

       2. 远程SSH连接

       系统安装完毕后,通过Windows 的SSH功能,使用预先设置的贴吧源码小程序端口通过ssh连接,命令如下:

       连接成功后输入密码,后续操作可以避免sudo,执行`sudo su`后再次输入密码。

       3. Redis部署与安装

       安装方式有二:一是通过apt直接安装,但版本较低。二是从官网下载源码编译,我选择后者,因为编译后的redis-server和redis-cli文件更灵活,无需每次都编译。

       编译过程中,需确保有gcc、update、make等环境。Windows下,通过scp将redis-7.2.3.tar.gz上传至Ubuntu,解压到/etc/redis,并编译redis-server。永恒之塔源码翻译

       4. 部署与开机自动运行

       将编译好的redis-server和redis-cli复制到/usr/bin,设置权限为。为支持ReJSON,需将rejson.so文件加载并设置redis.conf,包括save、port、requirepass等参数。

       配置完成后,通过`redis-server /etc/redis/redis.conf`启动服务,并设置为开机自动启动。

       5. 免编译部署

       避免编译,直接准备编译好的redis-server、redis-cli和rejson.so文件,解压后即可在Ubuntu上使用。只需复制这些文件到相应位置,配置文件照常处理,服务设置也保持一致。最厉害的指标源码

       总结

       通过这些步骤,你可以在Ubuntu Server .上快速部署并运行Redis 7.2.3,同时设置开机自动启动,简化了整个过程。

在window上使用qemu虚拟机启动树莓派镜像

       在Windows上通过QEMU启动树莓派镜像的详细步骤如下:

       首先,从QEMU官网下载最新版本的QEMU模拟器,我使用的版本是7.2.0,下载名为qemu-w-setup-.exe的安装包。安装过程很简单,按照向导进行默认配置即可。

       在Linux环境下,可以使用命令行下载源码编译安装,但这里我们主要介绍Windows的安装方法。接下来,访问树莓派软件下载中心,选择合适的镜像文件,如我下载的---raspios-bullseye-armhf-lite.img.xz,注意区分全功能版和精简版。

       同时,为了虚拟机启动,需要从GitHub获取kernel-qemu-4..-buster和versatile-pb-buster.dtb文件。将这些文件与镜像文件放在同一目录,并编写一个bat脚本来快速启动QEMU,脚本中包含hostfwd参数,以便通过ssh远程连接到虚拟机。

       启动后,可以看到树莓派的界面。对于软件开发,由于树莓派性能较差,通常选择在主机上进行交叉编译。在Ubuntu上安装交叉编译工具,如通过`apt-get`安装arm-linux-gnueabihf-gcc。然而,编译的程序可能因为架构不匹配导致运行错误,如`Illegal instruction`。这可能是由于编译器针对armv7,而设备是armv6架构。

       为了解决这个问题,我尝试了arm-armjzfssf-linux-gnueabi编译器,但遇到浮点数计算错误。最终,我找到了raspberry官方提供的工具gcc-linaro-arm-linux-gnueabihf-raspbian,它支持armv6硬浮点,编译的程序在树莓派虚拟设备上运行正常。

       至于镜像的构建,---raspios-bullseye-armhf-lite.info文件显示,树莓派镜像使用了arm-linux-gnueabihf-gcc-8版本8.4.0编译,其Uname字符串提供了具体信息,包括Linux内核版本和构建日期。

       总结起来,为在Windows上成功启动树莓派镜像,需下载适当的QEMU、镜像文件、内核文件,并根据设备架构选择合适的交叉编译工具,确保编译后的程序兼容目标设备。

AIX7.2下安装和使用GCC来编译强大的编程语言C代码

       在AIX7.2环境下,GCC、C语言和AIX这三个技术组合为强大的编程提供了坚实的基础。GCC,作为GNU编译器套件,以其高效、灵活和可靠性在软件开发领域扮演着重要角色,推动了开源技术的发展。C语言以其简洁和高效性,以及广泛的可移植性,成为构建底层系统和高性能应用的首选语言。

       本文将着重于在IBM Power8硬件下的AIX环境中,详细阐述如何安装和使用GCC进行C代码编译。首先,你需要安装GCC所需的依赖,如libffi处理函数调用,libiconv负责字符集转换,gettext支持国际本地化,以及精度运算相关的gmp、mpfr和mpc库。例如,libFFI提供了跨语言调用的接口,而libiconv则确保了不同编码间的顺畅转换。

       接下来,我们将具体讲解如何在AIX 7.2环境中安装GCC 4.9.4,这包括下载并安装相关包。然后,通过一个简单的C程序lsdir,演示如何利用GCC进行多线程编程,调用ls命令显示目录,该程序支持参数解析和基本功能扩展。

       总的来说,这篇文章为在AIX7.2上利用GCC编译C代码并进行实际操作提供了一套实用的指南。通过这些步骤,开发者可以充分利用这些技术来实现高效和强大的编程任务。

相关栏目:焦点