写给前端同学的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)和命令行工具 ...
随机推荐
- Oracle的dbms_random.value(min,max)函数包括边界值吗?数据是如何分布的?
事先申明下,我的DB环境是Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production,不保证在其它版本下也 ...
- js 向上滚屏
<!doctype html><html><head><meta charset="utf-8"><title>< ...
- 浅谈Java 线程池原理及使用方式
一.简介 什么是线程池? 池的概念大家也许都有所听闻,池就是相当于一个容器,里面有许许多多的东西你可以即拿即用.java中有线程池.连接池等等.线程池就是在系统启动或者实例化池时创建一些空闲的线程,等 ...
- git 快速入门及常用命令
身为技术人员,都知道Git是干嘛的.从服务端角度它是代码仓库,可以多人协作.版本控制.高效处理大型或小型项目所有内容:从客户端讲,它能够方便管理本地分支.且与服务端代码的同步,从拉取.合并.提交等等管 ...
- 【二叉树-最长路径系列(任意路径)】直径、最长同值路径、 最大路径和(DFS、树形DP)
总述 这类题目都是求一个最长路径,这个路径可以不经过根节点. 使用dfs(即递归地遍历树)的方法.维护一个全局最长路径max作为最终结果,而递归方法dfs返回的是含根节点的最长路径.(若不使用全局变量 ...
- .net MVC4.0项目发布到阿里云虚拟主机中遇到的问题。
正所谓学以致用,今天本来想做个bootstrap的demo发到服务器上看一下效果,结果服务器搞了半天,最终太晚了没能学到什么东西. 首先写好页面之后我做了一个MVC4.0的网站项目,然后把Bootst ...
- 学习 | less入门
最近在写css的时候,发现自己写的css特别长,觉得自己写的特别low,所以为了加快自己的开发效率,又重新温习了less,下面就是我学习less的过程. less是不能被浏览器识别的,要转换成css, ...
- rocketmq配置文件参数(broker-xx.properties)
#broker集群名称,用于划分broker brokerClusterName=MQCluster001 #broker名称,用于主从配对,相同名称的broker才能做主从设置 brokerName ...
- 本机浏览器无法访问linux的tomcat
原因:Centos7的防火墙拦截了tomcat访问的8080端口 Redhat 等等linux firewall-cmd --permanent --zone=public --add-port=8 ...
- Oracle 11gR2-Win 64bit
版本:Oracle 11gR2下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.ht ...