加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux安装和配置C++环境—笔记1

发布时间:2022-09-22 14:48:26 所属栏目:Linux 来源:
导读:  告知和自己一样的初学者!强调一下Linux版本选择的重要性,自己学习Linux初衷就是在Linux编译C++项目。Linux版本众多,结果选择了Red Hat,导致期间遇到各种各样的问题,也怪自己菜,结果折腾了两天,都没有在这
  告知和自己一样的初学者!强调一下Linux版本选择的重要性,自己学习Linux初衷就是在Linux编译C++项目。Linux版本众多,结果选择了Red Hat,导致期间遇到各种各样的问题,也怪自己菜,结果折腾了两天,都没有在这个版本上将Qt跑起来,期间遇到各种问题就不在此枚举了。推荐Ubuntu,结果从下载系统到安装配置Qt整个过程一点问题都没有出现,一路流畅下来全部搞定。这里提醒初学者,要想方便上手就先上Ubuntu,反正都是虚拟机,实在不行卸载重新安装其他版本都行。
 
  这篇博文依然保留Red Hat版本的Linux内容,就不在编辑了。
 
  Linux安装
 
  Linux版本以及安装完全参考《Linux就该这么学》书中第一章中方法(特详细),书中有VM及RedHat 8等镜像文件。
 
  Linux中安装软件的方法
 
  在RPM(红帽软件包管理器)公布之前,要想在Linux系统中安装软件,只能采取编译源码包的方式。所以,早期安装软件是一件非常困难、耗费耐心的事情,而且大多数的服务程序仅仅提供自身的源代码,还需要运维人员编译代码后自行解决软件之间的依赖关系。因此要安装好一个服务程序,运维人员不仅需要具备丰富的知识、高超的技能,还要有良好的耐心。
 
  总而言之,早期的Linux系统在安装、升级、卸载服务程序时还要考虑到其他程序、库的依赖关系,所以在进行校验、安装、卸载、查询、升级等软件操作时难度都非常大。RPM机制则正是为了解决这些问题而设计的。
 
  RPM有点像Windows系统中的控制面板,会建立统一的数据库,详细记录软件信息并能够自动分析依赖关系。表1-1所示为一些常用的RPM软件包命令,此时还不需要记住它们,大致混个“脸熟”就足够了。
 
  表 常用的RPM软件包命令
 
  命令作用
 
  rpm -ivh filename.rpm
 
  安装软件
 
  rpm -Uvh filename.rpm
 
  升级软件
 
  rpm -e filename.rpm
 
  卸载软件
 
  rpm -qpi filename.rpm
 
  查询软件描述信息
 
  rpm -qpl filename.rpm
 
  列出软件文件信息
 
  rpm -qf filename
 
  查询文件属于哪个RPM
 
  但是,尽管RPM能够帮助用户查询软件之间的依赖关系,但问题还是要运维人员自己来解决,而有些大型软件可能与数十个程序都有依赖关系,在这种情况下安装软件依然很繁琐。Yum软件仓库便是为了进一步降低软件安装难度和复杂度而设计的技术。Yum软件仓库可以根据用户的要求分析出所需软件包及其相关的依赖关系,然后自动从服务器下载软件包并安装到系统。
 
  Yum软件仓库中的RPM软件包可以是由红帽官方发布的,也可以是由第三方发布的,当然也可以是自己编写的。
 
  命令作用
 
  yum repolist all
 
  列出所有仓库
 
  yum list all
 
  列出仓库中所有软件包
 
  yum info 软件包名称
 
  查看软件包信息
 
  yum install 软件包名称
 
  安装软件包
 
  yum reinstall 软件包名称
 
  重新安装软件包
 
  yum update 软件包名称
 
  升级软件包
 
  yum remove 软件包名称
 
  移除软件包
 
  yum clean all
 
  清除所有仓库缓存
 
  yum check-update
 
  检查可更新的软件包
 
  yum grouplist
 
  查看系统中已经安装的软件包组
 
  yum groupinstall 软件包组
 
  安装指定的软件包组
 
  yum groupremove 软件包组
 
  移除指定的软件包组
 
  yum groupinfo 软件包组
 
  查询指定的软件包组信息
 
  在使用Linux的过程中可能会遇到很多问题,在网上寻找答案的时候,需要提前了解一下Linux系统分为两种:
 
  1.RedHat系列:Redhat、Centos、Fedora等
 
  2.Debian系列:Debian、Ubuntu等
 
  其中也会有一些命令上的差异,例如:
 
  RedHat系列的包管理工具是yum
 
  Debian系列的包管理工具是apt-get
 
  搭建 Linux下的C++开发环境
 
  Linux下的C++开发就是:编辑、编译、连接全部在 Linux下完成。通常有两种方式,(1)一种是编辑、编译、调试分开(称为命令开发方式);(2)另一种是编辑、编译、调试在一个集成开发环境中完成,称为集成开发方式。
 
  在命令开发方式下,编辑源代码的工具可以使用图形界面下的编辑器gedit或字符界面下的编辑器vi/vim。编辑完毕后保存,然后在命令行下使用命令 gcc/g++编译程序,如果需要调用,可以使用gdb命令。这两种方式稍显啰唆,尤其是调试,只能在命令行下用gdb进行调试,效率不是很高,但这是Linux开发人员的基本功。
 
  集成开发方式就是在图形界面的Linux下使用C++集成开发环境,比如Eclipse CDT。这种方式比较方便,比如可以用鼠标把工程管理、编辑、编译和调试工作都在一个集成开发环境下完成。这种开发方式效率较高,但不是每个企业都会提供Linux图形界面。
 
  在线安装gcc、g++
 
  Linux Redhat 8系统默认wifi是关闭的,需要在系统桌面右上角打开才可以连接网络。
 
  查看Linux系统版本
 
  cat /etc/redhat-release
  Red Hat Enterprise Linux release 8.0 (Ootpa)
  yum install gcc gcc-c++
  离线安装gcc、g++
 
  gcc与g++的区别
 
  gcc可以用来编译C或者C++,但他只能编译c++源文件,不能自动和C++程序使用的库连接,g++可以实现C++程序的编译和链接,其实他也是调用gcc来编译的,要编译c++代码生成可执行文件要用 g++
 
  1)安装包下载及(安装教程1:Redhat 7.1 离线安装 gcc),(安装教程2:RedHat 安装 gcc、g++)
 
  gcc安装包下载: 密码:avf0
 
  2)Windows与Linux共享文件
 
  离线安装需要首先解决把在Windows下载的离线文件发送到Linux系统中,如果是Linux下载的就不需要这个步骤了,直接看下面的步骤3)。
 
  方法可以通过VM建立Windows与Linux共享文件的方式进行,参考博文:如何将Windows系统上的文件传入VMware中的Linux虚拟机中。还可以通过网络的方式传输文件,参考博文:将文件从本机上传到虚拟机中Linux系统中的几种方法。
 
  共享文件夹的方式: 打开虚拟机设置,选择共享文件夹,添加,新建一个文件夹设置主机路径。以后这个文件夹中的内容就会被Linux虚拟机直接使用。
 
  在虚拟机中通过命令查看刚才的共享文件
 
  /mnt/hgfs/Vmware_Share
  结果显示
 
  bash: /mnt/hgfs/Vmware_Share: Is a directory
  将当前执行目录修改为刚才新建的共享文件夹,在这个文件中放入我们下载的gcc_rpm.tar.gz文件。
 
  cd /mnt/hgfs/Vmware_Share
  3)解压这个文件
 
  tar zxvf gcc_rpm.tar.gz
  之后就可以看到解压后的rpm文件
 
  4)安装,先将当前目录设置为gcc_rpm
 
  cd gcc_rpm
  次执行如下命令,依次执行时候,我这里会显示出错。因此,我采用的是批量安装的方式。
 
  rpm -ivh lib64gmp3-4.3.1-1mdv2010.0.x86_64.rpm
  rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm
  rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
  rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm
  rpm -ivh cpp-4.4.7-4.el6.x86_64.rpm --force
  rpm -ivh kernel-headers-2.6.32-431.el6.x86_64.rpm
  rpm -ivh glibc-headers-2.12-1.132.el6.x86_64.rpm --nodeps --force
  rpm -ivh glibc-devel-2.12-1.132.el6.x86_64.rpm --force --nodeps
  rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm --force --nodeps
  rpm -ivh libstdc++-devel-4.4.7-4.el6.x86_64.rpm --force --nodeps
  rpm -ivh gcc-c++-4.4.7-4.el6.x86_64.rpm --force --nodeps
  批量安装方法:
 
  rpm  -ivh  *.rpm --nodeps --force
  5)测试安装是否成功,查看版本
 
  gcc -v
  结果显示
 
  gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)
  以命令行的形式linux软件源,通过gedit编辑源代码并编译生成第一个C++程序
 
  在桌面文件夹上右击,在快捷菜单上选择“在终端中打开”,接着在命令提示符下输入gedit。
 
  在gedit中输入如下代码:
 
  #include
  using namespace std;
  int main()
  {
   cout<<"Hello, World!"<<endl;
   return 1;
  }
  然后保存为helloworld.cpp,下面准备编译。
 
  (3)开始编译链接。返回到终端窗口,进入 helloworld.cpp所在目录,然后输入命令进行编译链接:
 
  g++ -o helloworld helloworld.cpp
  g++是前面安装的C++程序的编译工具,-o是输出生成的二进制程序的意思,其后紧跟着的是二进制程序名。
 
  执行编译的程序,显示结果
 
  [root@linuxprobe Desktop]# ./helloworld
  Hello, World!
  使用集成开发方式编译C++程序
 
  见下篇博文Linux使用集成开发方式编译C++程序—笔记2。
 

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!