写给前端同学的C++入门教程(一):概述和环境搭建
说明:本人是前端er,因为最近对 UE4(一个游戏开发引擎)产生了兴趣,而这个引擎源开发游戏时需要用到 C++ ,所以就开始入坑 C++ 了。现将自己学习 C++ 的笔记整理并分享出来,以便一些想入门 C++ 的朋友一起学习,将会以系列教程的的形式来编写,这是第一篇。
C++ 是什么?
我们都知道,目前的高级编程语言主要分成两种,一个是面向过程的比如 C,一个是面向对象的比如 Java。而 C++ 时同时整合了这两种特性的语言,在C语言基础上添加的类代表的面向对象。另外,C++模板还支持支持的泛型编程(后面会介绍)。至于 C++ 发展历史,这里不做介绍,大家可以自行查找。
在 C++ 最初发布的时候,在编译过程分成两段的,先是把 C++ 编译成 C,再把 C 编译成机器代码的,就像我们前端写 TS 需要先将 TS 转换成 JS 后浏览器才能识别一样。但是现在的编译器一般都不需要先将C++转换成 C 的,而是一步到位的。
环境搭建
如果是使用 windows 平台,常用的编译器有 visual studio , visual c++6.0 ,borland c++ 和 code block 等。 我相信好多朋友对 visual c++6.0 , borland c++ 和 code block 肯定都不陌生,这是因为大学做课程设计时,老师经常推荐给我们的编译器,但是我不推荐,原因有二,第一,界面长得太丑了,起码是20年前的界面风格,第二,不够智能,比如自动补全或错误提示等都做得不好。至于 visual studio 确实很强大,但是对于新手也不太推荐,毕竟刚开始只是写 helloworld 级别的,如果使用这个就有点杀鸡用牛刀的感觉了。那怎么办呢?
我推荐的做法是,在 vscode(注意不是 visual studio)中编写 C++ 源码,然后使用 gcc 来编译源码,即把编辑器和编译器分开来用。
如果是使用 ubuntu 等 linux 系统,默认是装了 gcc 的,这里也不详细展开。本文主要讲的是 windows 平台下的搭建。
首先,安装 vscode ,同时要装上 C/C++ 插件,它会有自动补全和错误检测等功能(如果没有提示,可以安装 gcc 后再回头不试试)。
比如,我平时写前端,习惯了用 var 来声明变量,则会有如下提示,因为 c++ 是没有 var 标志符的:
鼠标移上去就会显示详细的错误信息:
还有关键字的自动补全,比如我们定义一个 double 类型的变量,输入 doub 就会有很多的选项:
然后,再来安装 gcc 编译器。windows 平台安装可以安装 mingw。可以到这里下载:MinGW-w64 - for 32 and 64 bit Windows。往下稍微翻一下,选 x86_64-posix-seh。
提示:最好不要选择 MinGW-W64 Online Installer , 因为国内网络被墙的原因,在线安装有很大机率会安装失败。
下载完安装包之后,然后解压,你会发现它里面的目录结构如下:
接下来,还需要配置 path 路径,假如我解压到了 C 盘的 mingw 目录,则在环境变量 Path 中添加如下路径:
C:\mingw\bin
配置完成之后 ,打开命令行工具,cmd 或者 powsershell 都可以,输入 gcc -v
:
如果看到上面的信息,则说明我们的 gcc 已经配置成功了。如果没有,则检查一下你的 path 路径正不正确,或重启一下电脑试试。
现在编辑器和编译器我们都搭好了,可以快乐的来写 Hello World! 啦。
#include <iostream>
int main() {
std::cout << "Hello World!";
return 0;
}
然后在当前目录的终端中输入 g++ main.cpp
,就会发现当前目录下多了一个 a.exe 文件。,然后,再到终端中输入 ./a.exe
就可以执行该文件,并有 Hello World! 输出了。当然,编译和运行也可以合并成一条命令 g++ main.cpp && ./a.exe
,如下:
这段代码也很简单,首先是 #include 预处理指令引入 iostream 这个头文件,然后在 main 函数中输出 Hello World! 。iostream 这个是标准输入输出流的头文件,我们下面使用 std::cout 就在这里面定义的。
OK,这一章节就写到这里,如果有什么疑问的大家可以在评论区交流讨论哈~。
最后,网上也有很多教程是关于如何把 vscode 配置成可以编译 C++ 的,但是我觉得没有必要,我们就只使用 vscode 作为书写代码的编辑器就够了,编译我们使用命令行工具就行。
写给前端同学的C++入门教程(一):概述和环境搭建的更多相关文章
- Unix/Linux环境C编程入门教程(4) Debian Linux环境搭建
Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 1.广义的Debian是指一个致力于创建自由操作系统的合作组织及其作品,由于Deb ...
- Unix/Linux环境C编程入门教程(18) kali-linuxCCPP开发环境搭建
1. Kali linux是BT5的晋级版本,用于信息安全.基于Debian7内核.新建虚拟机. 2. 选择默认虚拟机 3. 选择稍后安装操作系统 4.选择Linux Debian7 64位,因为Ka ...
- Unix/Linux环境C编程入门教程(15) BT5开发环境搭建
1. Backtrack 是处于世界领先地位的渗透测试和信息安全审计发行版本.有着上百种预先安装好的工具软件,并确定能完美运行,Backtrack5 提供了一个强大的渗透测试平台--从Web hack ...
- Unix/Linux环境C编程入门教程(7) OPENBSDCCPP开发环境搭建
1. 年发起了OpenBSD 专案,希望创造一个注重安全的操作系统. 2.创建一个虚拟机. 3.选择默认的workstation10.0 4.我们选择稍后安装操作系统. 5.我们选择FreeBSD64 ...
- 无废话MVC入门教程一[概述、环境安装、创建项目]
(转载) 本文目标 1.对MVC有初步的了解 2.能够在VS2010的基础之上安装MVC3的开发和运行环境 3.对MVC框架有概括性的认识 本文目录 1.什么是MVC 2.VS2010安装MVC3 3 ...
- Unix/Linux环境C编程入门教程(3) Oracle Linux 环境搭建
Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 2010年9月,Oracle Enterprise Linux发布新版内核--Un ...
- 前端组件化Polymer入门教程(1)——初识&&安装
前端组件化Polymer入门教程目录: 前端组件化Polymer入门教程(1)--初识&&安装 前端组件化Polymer入门教程(2)--快速入门 前端组件化Polymer入门教程(3 ...
- 要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放
要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放 大师主讲 经验难得 由逐浪CMS首席架构师发哥老师,亲自主理讲解. 历时一年精心打造, 汇聚了互联网诞生 ...
- (转)前端构建工具gulp入门教程
前端构建工具gulp入门教程 老婆婆 1.8k 2013年12月30日 发布 推荐 10 推荐 收藏 83 收藏,20k 浏览 本文假设你之前没有用过任何任务脚本(task runner)和命令行工具 ...
随机推荐
- python应用 曲线拟合04
python应用 曲线拟合04 → 多项式拟合 主要是使用 numpy 库中的 polyfit() 函数,见第 66 行, z = np.polyfit(x_proton, y, 3) ,其中待拟合曲 ...
- git多账号使用
1 背 景 在公司上班的员工会同时拥有两个git账号, 一个是公司内部的, 仅允许工作时使用; 另一个是个人的, 常用于日常的学习记录. 此时, 面临的问题是如何在一台电脑(客户端)上正常使用两个账号 ...
- Nginx(二): worker 进程处理逻辑-流程框架
Nginx 启动起来之后,会有几个进程运行:1. master 进程接收用户命令并做出响应; 2. worker 进程负责处理各网络事件,并同时接收来自master的处理协调命令: master 主要 ...
- lua数据结构之table的内部实现
一.table结构 1.Table结构体 首先了解一下table结构的组成结构,table是存放在GCObject里的.结构如下: typedef struct Table { CommonH ...
- ActiveMQ客户端Apache.NMS从.net 4.0移植到.net standard 2.0
1.从官网或GitHub下载Apache.NMS源码 2.新建.net standard 2.0类库 3.将源码复制到新建的类库中,并删除或注释CommonAssemblyInfo.cs文件(程序集版 ...
- 分享一个php的防火墙,拦截SQL注入和xss
一个基于php的防火墙程序,拦截sql注入和xss攻击等 安装 composer require xielei/waf 使用说明 $waf = new \Xielei\Waf\Waf(); $waf- ...
- MyBatis学习(三)日志输出环境配置
一.编写日志输出环境配置文件 在开发过程中,最重要的就是在控制台查看程序输出的日志信息,在这里我们选择使用 log4j 工具来输出: 准备工作:将[MyBatis]文件夹下[lib]中的 log4j ...
- 手对手的教你用canvas画一个简单的海报
啦啦啦,首先说下需求,产品想让用户在我们app内,分享一张图片到微信.qq等平台.图片中包含用户的姓名.头像.和带着自己信息的二维码.然后,如何生成这张海报呢~~~首先我们老大告诉我有一个插件叫htm ...
- layui动态添加选项卡
<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head> <meta ...
- Linux下安装ZooKeeper-3.5.6
下载 官网下载地址是https://www.apache.org/dyn/closer.cgi/zookeeper,下载apache-zookeeper-3.5.6-bin.tar.gz. sta ...