目录
一、安装虚拟机
(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)
(2)虚拟机安装
点击刚刚下载好的exe文件,如果有防火墙提醒,选择运行即可:
点击下一步:
选择“我接受”,并点击“下一步”:
选择安装的位置,不建议装在C盘;默认勾选第二个;点击下一步:
这里的用户体验设置可选可不选,我没有选:
选择快捷方式,这里可以都勾选,更加方便:
点击安装,等待安装完成:
点击完成即可:
二、创建虚拟机
(1)下载镜像文件(.iso)。
虚拟机下载好之后只是提供了一个平台,或者理解为容器。此时就像一台电脑已经拥有了硬盘和内存,但是还没有操作系统。所以我们需要下载程序光盘映像文件。
Ubuntu是著名的Linux发行版之一,也是目前最多用户的Linux版本。我们就选择下载Ubuntu。但是由于服务器在国外,所以去官网下ubuntu系统会非常慢。我们可以在国内的一些镜像网站下载:
1、清华大学开源网站镜像站
清华大学开源网址
2、在顶部的搜索栏输入ubuntu ,并选择ubuntu-releases:
(3)、选择一个ubuntu版本进行下载。由于新的ubuntu版本多多少少会出现以前从未出现的bug,为了后期的方便使用,出了问题我们可以找到解决方案。保险起见,建议下载18.04:
(补充:我后面还是升级到了20.04,建议大家这里直接安装20.04,避免后续升级再花费时间。当然有内存的可以都装。下载20.04和下载18.04版本一样,这里大家勾选 “20.04/”)
(4)、选择.iso文件,等待下载:
(文件有点大,可以复制下载链接至迅雷,存放的地方可以在刚刚VMware文件下新建一个ubuntu文件夹)
(下面的操作18版本和20版本都是一样的,只是自定义命名不同而已,大家命名的时候注意下就ok了)
(2)创建虚拟机
1、点击桌面上的VMWare,需要你输入密钥许可证,或者体验30天,大家可以到百度上找解决方案,这里不方便展开。
输入密钥许可证之后,进入欢迎界面:
2、点击创建新的虚拟机
3、选择“典型”和“自定义”都行,我们这里选择第一个,点击下一步:
4、点击“浏览”,选择刚刚我们下载好的iso文件:
5、接下来就是一些个性化信息的填写,密码需记住,这个密码就是你每次登录ubuntu需要输入的密码:
6、自定义虚拟机名称和位置:
7、最大磁盘默认20G,不是一下子占用20G,可以保持默认
8、点击完成,虚拟机创建完成。
(7)等待下载完成之后,输入之前的用户名和密码
(不知道为什么我在这里用数字键盘输入的时候没有反应,如果大家也一样换成键盘顶部的数字键输入就可以了。)
登录成功之后,ubuntu就终于可以用啦!
三、设置虚拟机
(1)调整字体大小
虚拟机字体太小了,看着很累眼,可以参照下面的方法调整字体大小:
1、右键打开终端、输入命令更新软件源:
sudo apt-get update
2、安装gnome-tweaks桌面配置工具
sudo apt install gnome-tweaks
3、弹出优化窗口
gnome-tweaks
4、窗口打开之后,点击Fonts,调整适合自己的数字:
(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、关闭虚拟机,在顶部打开虚拟机设置
3、开启虚拟机,打开终端,使用以下命令查看是否有文件夹:
cd /mnt/hgfs/share
4、查看是否切换到了share文件,并用ls查看文件夹下面是否有文件
ls
如上图所示,则表明共享文件夹创建成功。
后续会遇到虚拟机重启共享文件夹失效的问题,可按以下操作解决:
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保存退出。
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文件就需要我们自己编写啦
总结流程:
-
编写.cpp文件
-
编写CMakeLists.txt文件,CMakeLists.txt文件生成makefile文件
-
使用cmake命令把CMakeLists.txt 文件作为起始点在当前目录中生成makefile
-
使用make命令调用makefile文件中用户指定的命令来进行编译和链接
-
./ :运行相关程序
参考链接
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
h、编译构造
make
I、安装
sudo make install
J、检查
cmake -version //检查版本
which cmake //检查位置
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++文件成功!
五、附录(一些有用的linux命令)
除了上面提到的linux命令之外,还有许多常用的linux命令,比如:
-
cd 目录 :切换到指定的目录
-
cd ~ :切换到当前目录的主目录
-
cd .. :切换到上一级目录
-
cd - :切换到上一次目录
-
rm -rf :向下递归删除目录,且不做提示
-
tab :有时候文件名太长可以使用tab键补齐文章来源:https://www.toymoban.com/news/detail-716369.html
-
ls : 查看当前目录内容文章来源地址https://www.toymoban.com/news/detail-716369.html
到了这里,关于在Ubuntu中编译C++代码(从安装虚拟机到完成编译)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!