在Ubuntu中编译C++代码(从安装虚拟机到完成编译)

这篇具有很好参考价值的文章主要介绍了在Ubuntu中编译C++代码(从安装虚拟机到完成编译)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、安装虚拟机

(1)官网下载

(2)虚拟机安装

二、创建虚拟机

(1)下载镜像文件(.iso)。

(2)创建虚拟机

三、设置虚拟机

(1)调整字体大小

(2)ubuntu汉化

(3)root初始化

(4)下载vim

四、编译C++文件

(1)创建共享文件夹

(2)编译C++文件

1、下载cmake

2、采用touch命令新建文件

3、采用gedit打开CMakeLists和helloworld文件

4、创建一个工作空间,进行编译

五、附录(一些有用的linux命令)


一、安装虚拟机

虚拟机VMware是一个“虚拟PC”软件,可以在一台机器上同时运行两个或更多系统。

(1)官网下载

官网下载

打开官网,选择合适的版本,我们这里选择Windows版

(建议在下载时在D盘创建一个文件夹专门来放Vmware)

ubuntu编译运行c++程序,ubuntu,c++,linux

(2)虚拟机安装

点击刚刚下载好的exe文件,如果有防火墙提醒,选择运行即可:

ubuntu编译运行c++程序,ubuntu,c++,linux

点击下一步:

ubuntu编译运行c++程序,ubuntu,c++,linux

选择“我接受”,并点击“下一步”:

ubuntu编译运行c++程序,ubuntu,c++,linux

选择安装的位置,不建议装在C盘;默认勾选第二个;点击下一步:

ubuntu编译运行c++程序,ubuntu,c++,linux

这里的用户体验设置可选可不选,我没有选:

ubuntu编译运行c++程序,ubuntu,c++,linux

选择快捷方式,这里可以都勾选,更加方便:

ubuntu编译运行c++程序,ubuntu,c++,linux

点击安装,等待安装完成:

ubuntu编译运行c++程序,ubuntu,c++,linux

点击完成即可:

ubuntu编译运行c++程序,ubuntu,c++,linux

二、创建虚拟机

(1)下载镜像文件(.iso)。

       虚拟机下载好之后只是提供了一个平台,或者理解为容器。此时就像一台电脑已经拥有了硬盘和内存,但是还没有操作系统。所以我们需要下载程序光盘映像文件。

       Ubuntu是著名的Linux发行版之一,也是目前最多用户的Linux版本。我们就选择下载Ubuntu。但是由于服务器在国外,所以去官网下ubuntu系统会非常慢。我们可以在国内的一些镜像网站下载:

1、清华大学开源网站镜像站

清华大学开源网址

2、在顶部的搜索栏输入ubuntu ,并选择ubuntu-releases:

ubuntu编译运行c++程序,ubuntu,c++,linux

(3)、选择一个ubuntu版本进行下载。由于新的ubuntu版本多多少少会出现以前从未出现的bug,为了后期的方便使用,出了问题我们可以找到解决方案。保险起见,建议下载18.04:

(补充:我后面还是升级到了20.04,建议大家这里直接安装20.04,避免后续升级再花费时间。当然有内存的可以都装。下载20.04和下载18.04版本一样,这里大家勾选 “20.04/”)

                           ubuntu编译运行c++程序,ubuntu,c++,linux

(4)、选择.iso文件,等待下载:

             ubuntu编译运行c++程序,ubuntu,c++,linux

(文件有点大,可以复制下载链接至迅雷,存放的地方可以在刚刚VMware文件下新建一个ubuntu文件夹)

(下面的操作18版本和20版本都是一样的,只是自定义命名不同而已,大家命名的时候注意下就ok了)

(2)创建虚拟机

1、点击桌面上的VMWare,需要你输入密钥许可证,或者体验30天,大家可以到百度上找解决方案,这里不方便展开。

输入密钥许可证之后,进入欢迎界面:

ubuntu编译运行c++程序,ubuntu,c++,linux

2、点击创建新的虚拟机

ubuntu编译运行c++程序,ubuntu,c++,linux

3、选择“典型”和“自定义”都行,我们这里选择第一个,点击下一步:

ubuntu编译运行c++程序,ubuntu,c++,linux

4、点击“浏览”,选择刚刚我们下载好的iso文件:

ubuntu编译运行c++程序,ubuntu,c++,linux

5、接下来就是一些个性化信息的填写,密码需记住,这个密码就是你每次登录ubuntu需要输入的密码:

ubuntu编译运行c++程序,ubuntu,c++,linux

6、自定义虚拟机名称和位置:

ubuntu编译运行c++程序,ubuntu,c++,linux

7、最大磁盘默认20G,不是一下子占用20G,可以保持默认

ubuntu编译运行c++程序,ubuntu,c++,linux

8、点击完成,虚拟机创建完成。

ubuntu编译运行c++程序,ubuntu,c++,linux

(7)等待下载完成之后,输入之前的用户名和密码

ubuntu编译运行c++程序,ubuntu,c++,linux

 ubuntu编译运行c++程序,ubuntu,c++,linux

(不知道为什么我在这里用数字键盘输入的时候没有反应,如果大家也一样换成键盘顶部的数字键输入就可以了。)

登录成功之后,ubuntu就终于可以用啦!

三、设置虚拟机

(1)调整字体大小

虚拟机字体太小了,看着很累眼,可以参照下面的方法调整字体大小:

1、右键打开终端、输入命令更新软件源:

sudo apt-get update  

2、安装gnome-tweaks桌面配置工具

sudo apt install gnome-tweaks

3、弹出优化窗口

gnome-tweaks

4、窗口打开之后,点击Fonts,调整适合自己的数字:

ubuntu编译运行c++程序,ubuntu,c++,linux

(2)ubuntu汉化

刚开始对虚拟机不熟可以选择对虚拟机汉化,熟悉了之后可以再换回英文。

参考链接

(3)root初始化
sudo passwd root

初始化成功后续有需要时我们才能切换到超级用户。

(4)下载vim

vim是linux中一个高度可配置的文本编辑器。以后的虚拟机的使用中可能会经常使用。

sudo apt-get install vim-gtk

四、编译C++文件

(1)创建共享文件夹

       由于Ubuntu系统安装在 VMware 虚拟机中的,两者之间经常要互传文件。 所以需要共享文件夹,所谓共享文件夹,就是虚拟机可主机都可以访问的一个文件夹, 该文件夹下的文件虚拟机和主机都可以操作。 相当于文件交互的一个桥梁。

1、创建共享文件夹

在自己电脑上建立一个共享文件夹,命名为share,可以创建在之前的VMware文件夹里。在share文件夹可以放入一些文件便于后面检查共享文件夹是否创建成功。

2、关闭虚拟机,在顶部打开虚拟机设置

ubuntu编译运行c++程序,ubuntu,c++,linux

3、开启虚拟机,打开终端,使用以下命令查看是否有文件夹:

cd /mnt/hgfs/share

4、查看是否切换到了share文件,并用ls查看文件夹下面是否有文件

ls

ubuntu编译运行c++程序,ubuntu,c++,linux

如上图所示,则表明共享文件夹创建成功。

后续会遇到虚拟机重启共享文件夹失效的问题,可按以下操作解决:

1、查看当前挂载的共享文件夹

vmware-hgfsclient

2、如果文件夹存在,使用以下命令:

sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o nonempty -o allow_other

3、设置开机自启:

sudo vi /etc/rc.local 

4、进入vi界面后,按'i'进入编辑模式,输入:

#!/bin/sh -e
​
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o nonempty -o allow_other

输入完成后按Esc键进入一般指令模式,输入":"进入命令行模式,最后输入wq保存退出。

ubuntu编译运行c++程序,ubuntu,c++,linux

5、给文件执行权限

sudo chmod +x /etc/rc.local

6、重启虚拟机

reboot

参考博文

(2)编译C++文件

       我们先从简单的helloworld开始,采用cmake方法对c++文件编译。

       其实我们也可以用gcc编译器编译c++程序,这个比较适用于只有一个源文件的情况。但如果我们的程序包含多个源文件,如果采用gcc逐个编译,就会变得很麻烦而且工作量很大。因此我们出现了批处理工具:make

       make工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式—通过调用makefile文件中用户指定的命令来进行编译和链接的。

      而makefile文件我们又从何获取呢,在一些简单的工程,我们可以人工编写,但面对一些复杂的工程时,我们可以借助CMakeLists.txt文件(学名:组态档)去生成makefile。

       当然,CMakeLists.txt文件就需要我们自己编写啦

总结流程:

  1. 编写.cpp文件

  2. 编写CMakeLists.txt文件,CMakeLists.txt文件生成makefile文件

  3. 使用cmake命令把CMakeLists.txt 文件作为起始点在当前目录中生成makefile

  4. 使用make命令调用makefile文件中用户指定的命令来进行编译和链接

  5. ./ :运行相关程序

参考链接

1、下载cmake

a、更新g++

sudo apt-get install g++ 

如果遇到锁住的问题,比如:

E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

尝试关闭终端或者输入以下命令:

sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock

b、检查是否有cmake

which cmake

c、如果显示了路径,说明含有cmake,卸载掉

sudo apt-get remove cmake

d、下载cmake

wget https://www.cmake.org/files/v3.10/cmake-3.23.0.tar.gz

e、解压cmake

tar -zxvf cmake-3.23.0.tar.gz

f、进入解压之后的cmake文件夹,进行检查

cd cmake-3.23.0

g、执行安装过程

./bootstrap

出现错误情况1:

Error when bootstrapping CMake: Cannot find appropriate Makefile processor on this system. Please specify one using environment variable MAKE

输入命令:

sudo apt-get install build-essential

出现错误情况2:

CMake Error at Utilities/cmcurl/CMakeLists.txt:454 (message): Could not find OpenSSL. Install an OpenSSL development package or configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL.

输入命令:

apt-get install libssl-dev

参考博文

解决完错误后再次检查:

./bootstrap

ubuntu编译运行c++程序,ubuntu,c++,linux

h、编译构造

make

ubuntu编译运行c++程序,ubuntu,c++,linux

I、安装

sudo make install

J、检查

cmake -version    //检查版本
which cmake       //检查位置

ubuntu编译运行c++程序,ubuntu,c++,linux

cmake安装成功!

(补充:这里版本下载的是哪一版就显示的是哪一版,3.10的版本还是太低了,建议大家下载cmake版本高一点的)

参考博文

2、采用touch命令新建文件
touch CMakeLists.txt
touch helloworld.cpp
3、采用gedit打开CMakeLists和helloworld文件

打开CMakeLists.txt文件:

gedit CMakeLists.txt

在CMakeLists文件中输入:

#cmake最低版本号要求
cmake_minimum_required(VERSION 2.8)
#工程名
project(HELLOWORLD)
#包含原程序,即把给定目录下的源程序复制给变量DIR_SRC
#将指定路径下的源文件储存在指定的变量中
#下面这句话,有些博客中写错了,需要注意
aux_source_directory(./ DIR_SRC )
#生成程序
add_executable(HELLOWORLD  ${DIR_SRC})

打开helloworld.cpp:

gedit helloworld.cpp

在helloworld.cpp文件中输入:

#include<iostream>
int main()
{
    std::cout<<"hello world!"<<std::endl;
    return 0;
}

这里CMakeLists.txt的名字一点要输入正确,不然后面cmake的时候会报错找不到该文件!

4、创建一个工作空间,进行编译
//创建目录:mkdir 
//切换目录:cd
//cmake .. :使用CMakeLists.txt 文件作为起始点在当前目录中生成makefile
//make : 调用makefile文件中用户指定的命令来进行编译和链接
//  ./HELLOWORD : 运行helloword文件
​
mkdir build 
cd build
cmake ..
make
./HELLOWORD 

ubuntu编译运行c++程序,ubuntu,c++,linux

终于,在ubuntu文件下运行c++文件成功!

五、附录(一些有用的linux命令)

除了上面提到的linux命令之外,还有许多常用的linux命令,比如:

  1. cd 目录 :切换到指定的目录

  2. cd ~ :切换到当前目录的主目录

  3. cd .. :切换到上一级目录

  4. cd - :切换到上一次目录

  5. rm -rf :向下递归删除目录,且不做提示

  6. tab :有时候文件名太长可以使用tab键补齐

  7. ls  :  查看当前目录内容文章来源地址https://www.toymoban.com/news/detail-716369.html

到了这里,关于在Ubuntu中编译C++代码(从安装虚拟机到完成编译)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu安装jenkins完成自动化构建

    本篇文章介绍Ubuntu系统中安装jenkins,并使用jenkins完成自动化构建。 Jenkins自动构建部署流程通过git拉取代码,然后用maven打包成jar包,然后通过docker完成项目部署。这里的服务器需要安装jdk(openjdk也行),maven,git,docker,mysql,其他中间件(redis,mq等)。 1.maven安装 Ubuntu的

    2024年02月12日
    浏览(41)
  • 利用老毛桃pe启动U盘启动ubuntu.iso,完成ubuntu系统的安装

    1.双U盘,一个是老毛桃pe启动盘,可以启动grub4dos,加载了run模块,很好用(尤其是对不熟悉grub的小白) 2.大容量U盘存放ubuntu-desktop-i386.iso,U盘的格式是ntfs格式(其实这个不好,exfat更好,一是不识别,二是占空间) 3.bios中设置用老毛桃U盘启动系统,选择菜单中“从其他镜

    2024年02月10日
    浏览(35)
  • 【SLAM实战篇】Ubuntu 20.04版本(OpenCV版本4.5.3)对于ORB-SLAM2安装运行,代码编译,自己的数据集构造

    学完SLAM十四讲 心血来潮想跑一下ORB-SLAM2的代码,纯新手小白,自己的踩坑经历进行整理: 本文章主要对ORB-SLAM2进行编译运行。以及自己构建数据集。 源码github地址:https://github.com/raulmur/ORB_SLAM2 终端克隆代码: 查看源代码,其重要的代码库仅为三个文件夹: Example include s

    2024年03月13日
    浏览(54)
  • Ubuntu22.04安装黑屏(进入U盘安装引导时 和 安装完成后)

    问题描述:选择’try or install ubuntu’,开始安装,出现黑屏。 解决方法: (可行) 安装时,先选择\\\" try or install ubuntu\\\", 此时不要按enter,按\\\"e\\\"进入编辑模式; 进入命令行模式, 找到 quiet splash,用nomodeset替换“- - -”,然后按F10启动系统,就可以进入桌面了。 问题描述:系统

    2024年03月18日
    浏览(74)
  • Ubuntu虚拟机安装以及在Ubuntu上安装pycharm

    下载地址:清华大学开源软件镜像站 | Tsinghua Open Source Mirror 参考文章:Ubuntu系统下载(清华大学开源软件镜像站)(ubuntu-20.04.1-desktop-amd64.iso) ubuntu 20.04.1下载 -借我杀死庸碌的情怀-的博客-CSDN博客 安装过程并不复杂,正常安装即可。 不能直接用VMware 安装,不然无法共享剪

    2024年02月11日
    浏览(45)
  • ubuntu 上vscode使用cmake编译运行c++程序

    参考:ubuntu 上vscode使用cmake编译运行c++程序_vscode ubuntu运行c++程序_SCH0的博客-CSDN博客 文章是对官方过程的翻译: Get started with CMake Tools on Linux

    2024年02月07日
    浏览(54)
  • Ubuntu 安装编译 opencv

    配置 Ubuntu 镜像源 由于部分镜像源并没有将软件包的版本更新到最新,国外官方镜像源访问与下载速度较慢,所以需要更新镜像源为以下几种: 阿里镜像源 清华大学镜像源 163镜像源 中科大镜像源 系统可以同时包括四种镜像源,确保能够及时搜索到所有的软件的最新版本 环

    2024年02月08日
    浏览(45)
  • Ubuntu22.04安装使用Docker (参考:完成Dock中的企业微信安装)

    Docker是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类似

    2024年02月11日
    浏览(48)
  • Ubuntu 交叉编译工具链安装

    ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译,编译就需要编译器,我们在第三章“Linux C 编程入门”里面已经讲解了如何在 Liux 进行 C 语言开发,里面使用 GCC 编译器进行代码编译,但是 Ubuntu 自带的 gcc 编译器是针对 X86 架构的!而我们现在要编译的是 ARM 架

    2024年02月15日
    浏览(53)
  • 【运维】Ubuntu,如何在Ubuntu系统中编译和安装OpenCV, apt安装OpenCV

    在C++开发中,使用OpenCV是一个常见的需求。您可以选择使用conan构建包,或者直接将OpenCV安装到系统中。官方文档提供了详细的教程,可以在这里找到:OpenCV官方文档 然而,在这里我们将演示一种自己的安装方法,逐步进行操作: 步骤1:更新系统 在安装任何软件之前,请确

    2024年01月23日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包