前言

在学习Android源码过程中,特别在Framework及其更加底层中,常常遇到一些C++代码,导致对于Android源码一直一知半解;再一方面,NDK开发也会遇到一些C++的库,现在正好趁假期好好学习下C++。废话不多说,现在开始~(学习教程来自于前艺电(EA)游戏引擎工程师Cherno的C++教程The Cherno(科学上网),B站上有不少该视频的翻译,在此感谢Cherno和翻译者的无私贡献~)

一.Windows平台下C++环境搭建

在Windwos下开发一般是在VS Code和Visual Studio,这里先说下Visual Studio的搭建

1.1 Visual Studio安装

Visual Studio的官方地址:Visual Studio
通过上面的链接找到下载选项,然后选择"Community"版本,也就是所谓的社区版本。
Visual Studio

这时候会下载一个Visual Studio的下载器,点击后自动下载安装,安装完毕实际上是一个Visual Studio Installer程序,你需要通过该程序安装你的Visual Studio,打开Visual Studio Installer,可以看到如下所示:
Visual Studio Installer
由于主要关注C++的学习,这里我们选择使用C++的桌面开发,选择之后,这里有个非常重要的选项就是安装位置,因为Visual Studio会默认选择在C盘安装,可能导致C盘容量不足。
安装路径
我选择安装在D盘,IDE,下载缓存,共享组件工具和SDK最好都设置一下。

再点击安装,安装Visual Studio 2022(这里我已经安装过了,所以没有显示安装按钮)。再等待一段时间之后就安装完成,然后就可以创建项目了。

1.2 创建C++项目

打开Visual Studio 2022后依次点击 文件,新建,项目,如下图:
新建项目
新建项目后你会看到如下界面:
创建新项目
选择空项目,点击"下一步",进入"配置新项目"界面
配置新项目
填写好项目名称和项目位置,点击创建按钮,下面开始创建源文件,如下图:
新建项
选择新建项之后选择**C++文件(.cpp)**命名好cpp文件名称,如下图:
添加新项
点击添加后,你会在左边"解决方案"中的源文件中看到Main.cpp,到这里就可以愉快的撸代码了。测试代码如下:

#include<iostream>

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

上面的代码就是经典的输出"hello world"代码,点击文件上面的绿色的三角形,执行运行程序。
运行
运行结果:
hello world!
到此,我们完全的完成了IDE从安装到编写和运行的全过程。

二.Linux平台下C++环境搭建

上面完成了在Windwos下C++环境搭建,接下来开始在Linux下搭建C++。我用的操作系统是Ubuntu版本16.04。

2.1 安装编译工具

搭建C++编译环境需要用到g++,cmake,vim,通过apt-get命令将其下载并且安装。

sudo apt-get install cmake g++ vim

有些时候在安装的时候可能需要管理员权限,所以在apt-get命令前面加上了sudo。使用以下命令查看是否安装完成。

g++ -v
vim -v
cmake -version

2.2 cmake脚本编写

当以上的软件安装完成后,可以利用cmake来编译C++了。我在home目录下创建一个project,再在project文件夹下创建src,用来存放C++文件,同时创建CMakeLists.txt文件。
CMakeLists.txt文件:

# cmake的最低(高)版本的要求
CMAKE_MINIMUM_REQUIRED(VERSION 3.5)

project (project)

# PROJECT_SOURCE_DIR CMakeLists.txt的所在目录路径
# 设置library输出目录
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/output")

# 设置可执行文件输出目录
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/output")

# 设置C++编译选项
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++14")

# 自定义变量,设置PROJECT_SOURCE_DIR/src
set (SOURCE_PATH "${PROJECT_SOURCE_DIR}/src")

# 打印语句
message(STATUS "C++ output path  ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")

# 打印语句
message(STATUS "C++ options ${CMAKE_CXX_FLAGS}")

# 告知cmake源文件是SOURCE_PATH目录下后缀名为.cpp的文件
file (GLOB source_files "${SOURCE_PATH}/*.cpp")

# 生成可执行的hello文件
add_executable(hello ${source_files})

# 生成so动态链接库,Android NDK开发用的比较多
#add_library(hello SHARED ${source_files})

然后在src目录下创建main.cpp,输入代码:

#include<iostream>

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

这样就写好了cmake和C++文件,接下来就是实行cmake命令
命令如下:

cmake .
make

输入命令之后会在CMakeLists.txt当前目录下生成output,在output目录中找到hello文件,使用./output/hello或者./hello执行,打印出"hello world !"

结束

Windwos平台上利用"宇宙第一IDE"Visual Studio,开发C++,同时方便调试,Linux平台上利用cmake脚本编译C++。后面的C++开发还是以Visual Studio为主,学习C++的核心语法。
至于Linux平台下的C++开发,后续会考虑vim加上各种插件来做为IDE。同时由于cmake和NDK开发的关系,后面会系统的学习cmake脚本。共勉之~

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐