ubuntu 16.04 安装GCC-6.2.0 并编译第一个c++程序hello ubuntu

Ubuntu 22.04 LTS 上编译安装 Unreal Engine 5.3.2 完整指南 在 Linux 系统上进行 C++ 大型项目开发,环境配置与依赖管理是首要挑战,尤其涉及高性能图形计算时,稳定的显卡驱动和完整的工具链是项目成功的基石。其核心原理在于通过包管理器、源码编译和系统配置,构建一个可控且高效的开发环境,这对于追求极致性能与稳定性的实时3D内容创作至关重要。本文聚焦于在 Ubuntu 22.04 LTS 这一企业级稳定发行版上,从零开始搭建完整的 Unreal Engine 5.3.2 开发环境。内容涵盖系统基础配置、NVIDIA 显卡驱动的多种安装方案与避坑指南、UE5 源码的获 阅读详情

在包子先生的督促和教育下,记录一下自己“油盐酱醋”生活,但求温故而知新:

开篇小白在ubuntu 16.04 下安装GCC-6.2.0,并顺利编译hello ubuntu.

step1:  下载源码, (保存的路径是:下载)

(1)gcc-6.2.0.tar.gz

(2)编译安装GCC所需要的依赖包:gmp-6.1.2.tar.bz2、mpfr-4.0.1.tar.bz2、mpc-1.1.0.tar.gz

step2:安装依赖包,安装顺序gmp 、mpfr、mpc

(1)安装gmp

ctrl+alt+t打开终端

cd 下载    [进入"下载"文件夹]

tar -xvf gmp-6.1.2.tar.bz2 [接解压缩包]

cd gmp-6.1.2 [ 进入“gmp-6.1.2”文件夹]

mkdir build [ 在“gmp-6.1.2”文件夹下创建“build”文件夹]

cd build [ 进入“ build” 文件夹]

../configure --prefix=/usr/local/gmp-6.1.2 --build=x86_64-linux-gnu   [1、前提在/usr/local/路径下,创建文件夹gmp-6.1.2。2、--prefix=/usr/local/gmp-6.1.2指定安装路径。3、--build指定软件安装的系统平台,如果没有指定,默认值将是‘-host’选项的值 http://www.jb51.net/LINUXjishu/363271.html]

make [ make命令会找到当前目录的makefile进行编译]

make check [测试makefile的流程]

sudo make install [安装]

(2)安装mpfr

ctrl+alt+t

cd 下载   

tar -xvf mpfr-4.0.1.tar.bz2

cd mpfr-4.0.1

mkdir build

cd build

../configure --prefix=/usr/local/mpfr-4.0.1 --build=x86_64-linux-gnu --with-gmp=/usr/local/gmp-6.1.2  [ 由于mpfr依赖gmp 库,所以在configure时,需要设置好gmp库所在的位置,供安装mpfr库时使用]

make

make check

sudo make install

(3)安装mpc

ctrl+alt+t

cd 下载   

tar -xvf mpc-1.1.0.tar.gz

cd mpc-1.1.0

mkdir build

cd build

../configure --prefix=/usr/local/mpc-1.1.0 --build=x86_64-linux-gnu --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.1 

make

make check

sudo make install

备注:如果不安装依赖库,在GCC configure配置的时候,会出现错误 configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+

step3:安装GCC

ctrl+alt+t打开终端

cd 下载    [进入"下载"文件夹]

tar -xvf gcc-6.2.0.tar.gz [接解压缩包]

cd gcc-6.2.0 [ 进入“ gcc-6.2.0”文件夹]

mkdir build [ 在“ gcc-6.2.0”文件夹下创建“build”文件夹]

cd build [ 进入“ build” 文件夹]

../configure --prefix=/usr/local/gcc-6.2.0 --build=x86_64-linux-gnu --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.1 --with-mpc=/usr/local/mpc-1.1.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib --program-suffix=-6.2.0   [1、前提在/usr/local/路径下,创建文件夹gcc-6.2.0。2、--program-suffix=-6.2.0 指定将被加到所安装程序的名字上的后缀 哭我安装时直接copy网上教程--program-suffix=-4.7最后查看/usr/local/gcc-6.2.0/bin/时 ,都是gcc-4.7,g++-4.7等,下晕我了,我都怀疑自己下载的包有问题。附上详细链接https://blog.csdn.net/zjt289198457/article/details/6918656 ]

make [ make命令会找到当前目录的makefile进行编译]

[编译了10+分钟,就出错了,没有截图,网搜贴一下问题error while loading shared libraries: libmpc.so.6: cannot open shared object file: No such file or directory,查了很久很多人都有这个error,是因为找不到依赖库,手动添加环境变量。

法1:

ctrl+alt+t

gedit /etc/environment [打开environment文件]

在environment文件末尾添加:usr/local/mpc-1.1.0/lib:/usr/local/gmp-6.1.2/lib:/usr/local/mpfr-4.0.1/lib:/usr/local/gcc-6.2.0/lib"

souce /etc/environment  [使添加的环境变量马上生效]

法2:

ctrl+alt+t

sudo gedit  ~/.bashrc  [打开.bashrc文件]

在.bashrc文件末尾添加:export LD_LIBRARY_PATH=:/usr/local/mpc-1.1.0/lib:/usr/local/gmp-6.1.2/lib:/usr/local/mpfr-4.0.1/lib:/usr/local/gcc-6.2.0/lib

souce ~/.bashrc    [使添加的环境变量马上生效]

Ubuntu 系统中设置环境变量   https://jingyan.baidu.com/article/db55b609a3f6274ba30a2fb8.html]

make clean [清除下之前没成功编译的文件]

make [继续make] [据说要经过漫长的等待,然后我就去午饭午休取快递回来后发现漫长已过去,make无error出现]

make check [测试makefile的流程] [又出错了,没有截图是类似“/bin/bash: autogen: 未找到命令”,万能的前辈们说是没安装autogen:sudo apt-get install autogen]

make check [终于顺利了一次]

sudo make install [gcc安装结束]

step4:添加新版gcc的可执行文件到命令搜索路径中

ctrl+alt+t  [打开终端]

gcc -v [查看gcc版本,发现依然是原来的gcc-5.4.0,原因是:gcc-6.1.0的可执行文件没有加入到搜索命令路径中]

which gcc [输出“/usr/bin/gcc”,指的是:gcc命令调用的是/usr/bin路径下的gcc]

sudo rm /usr/bin/gcc  [删除usr/bin路径下的gcc,因为当前的usr/bin路径下的gcc链接指向的是老版本gcc-5.4.0]

sudo ln -si /usr/local/gcc-6.2.0/bin/gcc-6.2.0 gcc [将usr/bin路径下的gcc使用软链接到gcc-6.2.0]

gcc -v [查看gcc版本,确定成功为新版本]

step5:同step,添加新版g++的可执行文件到命令搜索路径中

ctrl+alt+t 

g++ -v

which g++ 

sudo rm /usr/bin/g++ 

sudo ln -si /usr/local/gcc-6.2.0/bin/g++-6.2.0 g++

g++ -v

step6:编译hello ubuntu

ctrl+alt+t [打开控制台]

sudo apt-get install vim [安装vim]

mkdir my_c++ [在home下创建my_c++文件夹]

 cd my_c++

vim hello.cpp [新建文件名hello.cpp的源文件]

i [键入i 进入insert模式,即编辑输入模式,写下经典代码:]

#include<stdio.h>
#include<iostream>
using namespace std;

int main(int argc,char const *argv[])
{
   cout<<"hello unbuntu!"<<endl;

   return 0;

}

Esc [输入完成后,按Esc键回到normal模式]

:wq [保存并退出vim,返回终端]

g++ hello.cpp -o hello [编译hello.cpp]

./hello [运行程序]

就可以看到结果:hello unbuntu!

参考链接:

https://blog.csdn.net/stormbjm/article/details/9107831

https://www.oschina.net/question/12_49423

https://www.linuxidc.com/Linux/2014-05/101844.htm

















Ubuntu 16.04 上用 GOOS/GOARCH 实现 Go 多平台编译 Go 语言的跨平台编译能力源于其静态链接机制与内置多目标支持,无需模拟或虚拟化即可生成 Windows、macOS、Linux、ARM 等原生可执行文件。其核心原理是编译器根据 GOOS(目标操作系统)和 GOARCH(目标架构)条件编译源码分支,并由链接器生成对应格式(如 PE、Mach-O、ELF)。该能力显著提升 DevOps 构建效率、开源项目分发兼容性及 IoT 设备适配灵活性。在 Ubuntu 16.04 这类稳定 LTS 系统上,配合 Go 1.19+,可实现零依赖、秒级、高一致性的多平台二进 阅读详情

相关推荐

ubuntu 16.04安装gcc6 g++6

# 这5行一起复制粘贴运行即可 sudo apt-get update && \ sudo apt-get install build-essential software-properties-common -y && \ sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \ sudo apt-get update && \ sudo apt-get install gcc-6

Hello Word! 2891

Ubuntu 16.04源码编译ROS2 Crystal全指南:工业级可复现部署

ROS2是面向机器人系统的中间件框架,其核心依赖DDS通信、C++11 ABI兼容性与ament构建系统。理解ROS2底层机制需回溯早期版本设计逻辑,尤其在工业现场、高校实验及嵌入式边缘设备中,常受限于旧操作系统(如Ubuntu 16.04)和固件锁定环境。此时,二进制包因libstdc++ ABI不匹配、OpenSSL版本冲突等问题完全失效,源码编译成为唯一可行路径。本指南聚焦ROS2 Crystal Clemmys——首个LTS版本,详解FastRTPS 1.7.0静态编译、GNU C++11 ABI对

weixin_34209851的博客 448

西电计组实验一 存储器实验

计组实验报告 实验一 存储器实验——FPGA中LPM_ROM定制与读出实验 一.实验目的   1.掌握FPGA中lpm_ROM的设置,作为只读存储器ROM的工作特性和配置方法;   2.用文本编辑器编辑mif文件配置ROM,学习将程序代码以mif格式文件加载于lpm_ROM中;   3.在初始化存储器编辑窗口编辑mif文件配置ROM;   4.验证FPGA中mega_lpm_ROM的功能。 二.实验原理   ALTERA的FPGA中有许多可调用的LPM (Library Parameterized Modu

Polaris的博客 1万+

ubuntu 14.04 64位版本 gcc无法运行 安装ia32-libs提示没有可用的软件包

http://www.mr-wu.cn/how-to-install-ia32-libs-in-ubuntu-14/zhang@zhang-pc:~$ sudo apt-get install ia32-libs 正在读取软件包列表… 完成 正在分析软件包的依赖关系树 正在读取状态信息… 完成 现在没有可用的软件包 ia32-libs,但是它被其它的软件包引用了。 这可能意味着这个缺失的软

sundaygeek的专栏 7322

核密度估计及其Python实践

一、参数估计简介 很多情况下,我们只有有限的样本集,而类条件概率密度函数p(x|ωi)和先验概率P(ωi)是未知的,需要根据已有样本进行参数估计,然后将估计值当作真实值来使用。 由给定样本集求解随机变量的分布密度函数问题是统计机器学习和概率统计学的基本问题之一。解决该问题的方法包括参数估计和非参数估计两大类: 1.参数估计方法 已知概率密度函数的形式而函数的有关参数未知,通过估计参数来估计概率密度函数的方法。有两种主要参数估计法:确定性参数估计方法是把参数看作确定而未知的, 典型方法为最大似然估计。随机参数

袁易学的博客(Yuan Yixue's Blog) 1万+

抖音Web端私信Protobuf逆向解析实战

本文详细解析了抖音Web端私信通信的逆向过程,发现其核心采用WebSocket传输Protobuf序列化数据。通过抓包获取二进制样本,利用protoc工具进行原始解码,并逐步推导和编写出对应的.proto协议定义文件,最终实现模拟消息的编码与解码,为理解私有协议逆向提供了完整实战案例。

water的专栏 751

安装gcc-6系列与安装boost (Ubuntu16.04LTS)

安装gcc-6系列与安装boost (Ubuntu16.04LTS) 转载于:https://www.cnblogs.com/zhehan54/p/9002949.html

weixin_30718391的博客 162

【低轨】Starlink星链-Ku波段下行信号信号结构解析

Starlink播发位于10.7~12.7GHz之间的下行信号,该信号的设计意图是用于宽带网络通信,但是,文章通过对该信号信号体制的详细分析,以及解调出所调制的完整码序列,为利用Starlink信号进行定位解算提供了必要条件。(注,码序列对应的是卫星版本0.9,1.0和1.5)

iseeinvisible的博客 6253

ubuntu下手动升级到gcc6

1.添加源 2.安装 gcc-6/g++ -6 3.查看 gcc/g++ 链接 4.重定向 gcc 链接到 gcc-6 5.重新查看gcc/g++ 的链接:

王师傅 1683

Winform零基础从入门到精通(3)——WinForm基础语法与事件机制详解

通过系统学习基础语法与事件机制,结合实际问题调试,可以快速掌握WinForm开发的核心技能。遇到问题时,优先检查事件绑定和异常处理,逐步培养代码规范意识。​安全转换字符串为数值,避免输入错误导致的崩溃。验证输入(如仅允许数字)​)传递事件相关数据。◦ 事件参数类型:​。

WangMing_X的博客 1485

【nnUNetv2进阶】四、nnUNetv2 魔改网络-小试牛刀-加入注意力机制ChannelAttention

本文介绍了在nnunet中加入ChannelAttention的方法,按照本文教的教程,可以快速完成ChannelAttention的加入和自定义模型的跑通。

AI爱好者的博客,分享计算机领域相关知识 5790

Ubuntu16.04 安装g++6

https://blog.csdn.net/qq_34877350/article/details/81182022 1.安装gcc-6: sudo apt-get update && \ sudo apt-get install build-essential software-properties-common -y && \ sudo a...

abbywu1225的博客 798

量子化学仿真软件:VASP_(9).磁性材料计算

在量子化学仿真软件 VASP 中,磁性材料的计算是一个复杂但重要的过程。通过正确设置磁性状态、分析磁性性质、优化计算参数以及研究磁性相变和磁动力学,可以更准确地描述和预测磁性材料的性能。希望本节的内容能够为研究磁性材料的科研人员提供有用的参考和指导。

kkchenjj的博客 1369

Ubuntu 18.04上安装GCC编译器

原文:https://www.linuxidc.com/Linux/2019-06/159059.htm GNU编译器集合(GCC)是C,C ++,Objective-C,Fortran,Ada,Go和D编程语言的编译器和库的集合。许多开源项目包括GNU工具和Linux内核都是用GCC编译的。 本教程介绍了在Ubuntu 18.04上安装GCC编译器所需的步骤。我们将向您展示如何安装发行版稳定...

santirenpc的博客 3539

最新Python爬虫实战(入门爬虫篇)——案例3:爬取二次元cos图片批量下载到本地(附上完整爬虫代码)

本次案例通过Python爬虫技术实现了二次元图片的批量下载。代码采用模块化设计,函数实现cookies的自动解析,简化了配置流程,涵盖“请求列表页→提取详情页URL→请求详情页→提取图片链接→保存图片”的完整流程,与豆瓣案例的核心逻辑和格式完全对齐。学习重点包括:抓包工具定位多层级数据源、正则表达式匹配复杂链接、模拟请求头绕过反爬机制、文件名安全处理及自动化文件管理。需要注意控制请求频率并遵守网站使用规范,适用于入门爬虫实践,帮助学习者掌握多层级页面爬取的核心逻辑。

努力让自己发光,对的人才能迎着光而来 14万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

在Ubuntu16及以上版本安装配置C++11的编译环境

安装过程 首先,确认是否已经安装环境:输入 gcc --version,只可以 看到以下信息: (base) root@instance-h9yr0vu1:~# gcc --version gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying condition

郝伟老师的博客——大数据、并行计算与人工智能时代 4963

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Ubuntu 16.04源码编译ROS2 Crystal实战指南

ROS2是面向机器人系统的下一代中间件框架,基于DDS通信、支持多语言与实时性,其核心构建依赖CMake、colcon和ament_cmake等现代Linux开发工具链。理解ROS2的编译原理,关键在于掌握源码构建流程中对GCC版本、Python包兼容性、DDS中间件(如Fast-RTPS)及系统locale的深度适配逻辑。在老旧但稳定的Ubuntu 16.04环境下完成ROS2 Crystal编译,不仅验证了跨版本ABI兼容与依赖精细化管理能力,更成为嵌入式机器人、工业控制器及教学实验平台落地ROS2基础

weixin_33681778的博客 450

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

C++基础——Ubuntu下编写C++环境配置总结(C++基本简介、Ubuntu环境配置、编写简单C++例程)

​ 本次博文内容主要介绍在 Ubuntu 在终端窗口下使用 vi/vim 编辑一个 C++源文件,通过编写最简单的示例“Hello,World!”。这个一看是很简单的,只要有点Linux基础就行了(如何使用Vim或Vi编辑器、如何在Linux下编译等),之前博主在《从0到1学习嵌入式Linux开发实战》中总结了Liunx系统编程,里面的内容足以解决这个问题。 博主后续打算深入下嵌入式QT开发,内容将会在《QT开发实战》中继续,QT开发中使用的语言是C++,所以博主新建立了此

数字世界 万物互联 8213

Ubuntu 18.04下ROS2 Dashing源码安装实战指南

ROS2是面向机器人系统的中间件框架,其核心依赖于DDS通信、CMake构建系统与Python绑定机制。理解ROS2的ABI稳定性、ament构建流程和跨版本兼容性,是保障工业现场7×24小时稳定运行的技术基础。在Ubuntu 18.04这类长期服役的LTS系统中,官方二进制包早已停止更新,必须通过源码编译实现GCC 7.5适配、Python 3.6环境锁定及FastRTPS 1.8.2 ABI对齐。该过程不仅涉及cmake工具链调优、zram内存优化与pkg-config路径修复,更深层考验开发者对Lin

迷彩风情 480

CMake 3.30.0 源码编译升级:Ubuntu 22.04 从 3.16 到 3.30 的 5 步完整流程

本文详细介绍了在Ubuntu 22.04系统上从CMake 3.16升级到3.30.0的完整5步流程,包括环境准备、源码获取、配置编译、安装切换和验证排查。通过源码编译方式安全升级CMake,满足现代C++项目构建需求,同时保持系统稳定性,特别适合需要高版本CMake的开发场景。

weixin_30235225的博客 446

ubuntu 22.04运行opencv4的c++程序遇到的问题

摘要:本文介绍一下在ubuntu系统中,运行一个最简单的opencv4程序都出问题的解决方法,并对其基本原理作简单阐述。解决问题的方法有很多,本文只提供其中一种。

ieeee.blog.csdn.net 1142

Ubuntu 14.04 安装 Go 1.6 源码编译实战指南

Go 是一种静态编译、内存安全的系统级编程语言,其核心特性包括垃圾回收、goroutine 并发模型和 vendor 依赖管理;Go 1.6 作为关键过渡版本,首次默认启用 HTTP/2 并强化 unsafe 包检查,同时对 glibc 和内核兼容性有明确要求。在老旧生产环境(如 Ubuntu 14.04)中,标准包管理器 apt-get 因源失效、ABI 不兼容与磁盘空间限制而失效,必须回归源码编译这一底层可控路径。该方式支持精确控制 GOROOT、禁用 CGO 实现纯 Go 运行时、生成静态链接二进制,

weixin_34342905的博客 350

Ubuntu 16.04 启用 HTTP/2 的完整实践指南

HTTP/2 是现代 Web 性能的核心协议,其运行依赖 TLS 层的 ALPN 扩展与兼容的 OpenSSL 版本。在 Ubuntu 16.04 这类长期支持但内核陈旧的系统中,官方软件源提供的 Nginx 和 OpenSSL 存在静态链接、ALPN 缺失、TLS 1.2 协商降级等典型问题,导致看似启用实则失效。真实生效需同时满足 OpenSSL 支持 ALPN、Nginx 源码编译链接新版库、SSL 配置启用 h2 协议三重条件。本文围绕 OpenSSL 升级、Nginx 定制编译、HTTP/2 流控

csxc65837的博客 420

Ubuntu 22.04 LTS安装与C++开发环境配置全攻略

操作系统安装与开发环境配置是软件工程的基础环节,其核心在于理解系统引导、分区原理及工具链协同工作逻辑。在Linux生态中,Ubuntu作为最流行的发行版之一,其长期支持版本提供了稳定的基础平台。从技术价值看,合理的系统配置能显著提升开发效率与系统可维护性,尤其是在C++等编译型语言开发场景下。本文聚焦Ubuntu 22.04 LTS的实战部署,涵盖从UEFI引导设置、磁盘分区方案到完整C++工具链搭建的全过程,其中涉及CMake构建系统与vcpkg包管理器的集成应用,为开发者构建高效可靠的工作环境提供系统化

382

Ubuntu 16.04 上用 Go 原生交叉编译多平台二进制

交叉编译是 Go 语言核心能力之一,指在一种操作系统和架构(如 Linux/amd64)上生成其他目标平台(如 Windows、macOS、ARM)可执行文件的技术。其原理基于 Go 编译器内置的静态链接机制与 ABI 抽象层,通过 GOOS 和 GOARCH 环境变量切换目标平台,无需外部工具链或容器依赖。该技术显著提升部署一致性与 CI/CD 效率,广泛应用于 CLI 工具分发、嵌入式代理开发及跨端服务构建。尤其在遗留系统(如 Ubuntu 16.04)受限于硬件兼容性、安全合规或工具链耦合等刚性约束时

weixin_30591551的博客 395

Ubuntu 22.04 C++开发环境搭建:从系统安装到IDE配置全攻略

C++作为系统级编程的核心语言,其开发环境的搭建是每个开发者必须掌握的基础技能。在Linux系统中,GCC/G++编译器与GDB调试器构成了C++开发的基石,通过理解工具链的工作原理,开发者能够构建高效稳定的开发环境。现代C++项目通常依赖CMake这样的构建系统来管理复杂的依赖关系,而集成开发环境如VS Code和CLion则大幅提升了编码效率。本文聚焦于在Ubuntu 22.04 LTS系统上,从虚拟机与物理机双系统安装选择开始,逐步配置软件源、安装GCC编译器、掌握CMake构建工具,并深入解决Wi-

weixin_30323631的博客 466
下一篇: ubuntu 16.04 安装cmake3.5.2,及helloworld程序
爱吃小笼包
博客等级 码龄8年 104粉丝 13原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值