首页 > 编程语言 >使用devtoolset进行高效的编程开发

使用devtoolset进行高效的编程开发

时间:2024-01-11 10:57:30浏览次数:28  
标签:高效 Devtoolset ++ 编程 gcc 编译器 版本 devtoolset

随着编程语言和工具的不断发展,开发者们需要时刻保持对技术的更新和学习。而在Linux平台上,使用编程工具也需要一定的技巧和效率。本文将介绍devtoolset在编程开发中的使用,包括基本概念,安装,使用方法等等。当你完全掌握这些知识后,你将会在Linux上实现高效的编程开发。

一、devtoolset基本概念

Devtoolset是开源组织Software Collections (SCL)的一部分。它是一组工具,包括编译器、调试器和其他构建工具,这些工具常以软件包的形式打包,并发布到Red Hat Enterprise Linux、CentOS和Scientific Linux等Linux平台上。Devtoolset的编译工具支持多个版本的编译器,来制定不同的应用程序和项目的编译需求。例如 Devtoolset 7, 8 和 9支持 GCC 7, 8和 9版本的编译器。

根据开发者的需求,在同一系统上同时安装多个版本的编译器工具很重要。特别是当应用程序需要特定版本的Glibc时, 这个需求非常迫切,因为新版本的编译器可能会依赖新版本的Glibc。

二、devtoolset安装方法

在 CentOS 7 或 RHEL 7 上安装 Devtoolset,请执行以下命令:

# yum install centos-release-scl
# yum install devtoolset-9

# yum install devtoolset-9-gcc*

安装完成后,执行以下命令以启用Devtoolset 9环境:

# scl enable devtoolset-9 bash

运行命令之后,当前终端中将自动激活Devtoolset 9。可以使用gcc -v 查看当前终端的gcc版本。 

显示为 gcc version 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC)

补充:这条激活命令只对本次会话有效,重启会话后还是会变回原来的4.8.5版本,要想随意切换可按如下操作。

首先,安装的devtoolset是在 /opt/rh 目录下的,如图

 每个版本的目录下面都有个 enable 文件,如果需要启用某个版本,只需要执行

source ./enable

所以要想切换到某个版本,只需要执行

source /opt/rh/devtoolset-8/enable

可以将对应版本的切换命令写个shell文件放在配了环境变量的目录下,需要时随时切换。

如果开发者需要在启动时默认激活Devtoolset 9环境,可以执行以下命令:

# echo "scl enable devtoolset-9 bash" >> ~/.bashrc

执行上述命令后,每次启动终端时,将自动激活Devtoolset 9环境。

还有一种方式就是直接替换旧的gcc

旧的gcc是运行的 /usr/bin/gcc,所以将该目录下的gcc/g++替换为刚安装的新版本gcc软连接,免得每次enable

mv /usr/bin/gcc /usr/bin/gcc-4.8.5
 
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
 
mv /usr/bin/g++ /usr/bin/g++-4.8.5
 
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
 
gcc --version
 
g++ --version

三、使用devtoolset编译程序

在激活Devtoolset环境之后,您将可以使用新版本的编译器来编译和构建应用程序。

例如,使用Devtoolset 9编译C++代码:

$ scl enable devtoolset-9 bash
$ g++ --version
$ g++ -Wall -o myprogram myprogram.cpp

在编译代码时,也可以使用特定版本的编译器。例如,使用Devtoolset 9中的编译器:

$ scl enable devtoolset-7 bash
$ g++ --version
$ g++ -Wall -o myprogram myprogram.cpp

 

四、devtoolset的好处

使用Devtoolset的好处在于,您可以在同一个系统上使用多个版本的编译器,以便满足不同应用程序的需求。此外,使用Devtoolset可以更轻松地使用新功能、性能优化等。

与其他通用的软件工具相比,Devtoolset拥有专门的技术和支持,因此可以更轻松地在您的Linux环境中实现高效的编程开发。

标签:高效,Devtoolset,++,编程,gcc,编译器,版本,devtoolset
From: https://www.cnblogs.com/sttchengfei/p/17958041

相关文章

  • 32-Scala-函数式编程
    1.偏函数1.1案例引入给你一个集合List(1,2,3,4,"abc"),请完成如下要求:将集合中的所有数字+1,并返回一个新的集合;要求忽略掉非数字的元素,即返回的新的集合形式为(2,3,4,5)。objectPrePartialFuncTest{defmain(args:Array[String]):Unit={//=====......
  • Vue-Router: 如何在Vue应用程序中使用编程式导航?
    Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提......
  • 可编程线性霍尔传感器 IC
    一、产品概述CC6521/2是一款高性能的可编程线性霍尔传感器IC,采用先进的BiCMOS制程生产,具有霍尔系数高的优点,芯片内部包含了高灵敏度霍尔传感器,霍尔信号预放大器,高精度的霍尔温度补偿单元,振荡器,动态失调消除电路和放大器输出模块。CC6521/2采用了先进的自适应霍尔温度补偿技术,......
  • (五十六)C#编程基础复习——C#多线程
    多线程就是多个线程同时工作的过程,我们可以将线程看作是程序的执行路径,每个线程都定义了一个独特的控制流,用来完成特定的任务。如果你的应用程序涉及到复杂且耗时的操作,那么使用多线程来执行是非常有益的。使用多线程可以节省CPU资源,同时提高应用程序的执行效率,例如现代操作系统对......
  • Python中的元类和元编程是什么
    在Python中,元类和元编程是一些高级概念,能够帮助我们更深入地理解和扩展语言的特性。通过元类和元编程,我们可以在运行时动态地创建类、修改类和实例化对象,从而使我们能够更加灵活地编写代码。1.元类是什么?在Python中,类是对象的模板,用于创建对象。而元类则是用于创建类的类。也就是说......
  • Node.js 多线程编程:优化性能的关键步骤
    在 Node.js多线程允许Node.js应用并行处理任务,以此来提高性能和响应速度。Node.js内置了如 worker_threads 这样的模块来支持多线程。通过分配任务给不同的线程,能够更好地利用多核处理器,缓解单线程应用可能出现的瓶颈。Node.js中多线程的适用场景在 Node.js 中,以下几种情......
  • 【教3妹学编程-算法题】找出出现至少三次的最长特殊子字符串 I
    3妹:2哥2哥,我掐指一算,今天是你的发薪日吧,要不要请我吃个饭哈?2哥:切,这还用算,每个月都是10号嘛。3妹:2哥,让我吃个瓜,能不能告诉我你的工资是多少,吓死我!2哥:工资怎么能随便告诉别人呢,别人比你多了你难受,别人比你少了别人难受,还是不知道别人的好。3妹:那你到底请不请吃饭嘛。2哥:想吃饭哪那么......
  • CAXA CAD电子图板2023:让设计更简单,工作更高效
    CAXACAD电子图板2023是一款功能强大的数字化绘图软件,专为工程师和设计师打造。作为CAXA软件公司旗下的核心产品,CAXACAD电子图板2023在继承了之前版本的优秀性能和功能的基础上,进一步提升了用户的工作效率和设计品质。点击获取CAXACAD电子图板2023首先,CAXACAD电子图板2023提......
  • 【字典树/trie树】实现高效插入和查询字符串的数据结构
    本文是https://www.acwing.com/problem/content/description/837/的总结,有兴趣可以做做字典树的实现依赖于树结构,有两种操作,1是插入字符串,2是查找字符串。使用idx维护最新的结点下标。如下图,假设我们维护一个 可以看到,我们维护了一个树形结构储存了左边的字符串,但......
  • 在Linux中使用HTTP客户端库进行网络编程
    在Linux环境中进行网络编程时,使用HTTP客户端库可以大大简化开发过程。这些库提供了丰富的功能和工具,使开发者能够轻松地发送和接收HTTP请求。以下是使用HTTP客户端库进行网络编程的一些关键步骤和要点。选择合适的HTTP客户端库在Linux上有多个流行的HTTP客户端库可供选择,如libcurl......