热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C++学习笔记1——安装GNU编译器,配置sublime,编译运行第一个程序

本系列文章仅作为本人学习C路上的点滴,思考的记录,也希望可以帮助到需要的同学,若有错误之处欢迎各位前辈斧正,谢谢~教材&#

    本系列文章仅作为本人学习C++路上的点滴,思考的记录,也希望可以帮助到需要的同学,若有错误之处欢迎各位前辈斧正,谢谢~


  1. 教材:对于第一本教材并没有纠结很久,业内普遍推荐 《C++Primer 第五版》,还可以当做字典查询。如果对编程没有一点了解的跨专业同学,建议选择《C++ Primer Plus》。
  2. 编辑器:本人推荐SublimeText3或者VScode,优点是体积小,插件丰富。考虑过Visual Studio 2017,但是看到如此庞大的安装文件(选择组件已经很少了),额。。。比较适合大型应用的开发者。贴个图吐槽一下:
  3. 编译器:在C++程序编写好之后,我们通常需要编译它,这里我选择了GNU编译器,win10-64版本下载地址,

    安装好基础配置之后将安装路径下的bin文件夹所在路径如  H:\MinGW\bin运添加至系统环境变量Path下即可,检查是否安装成功,运行cmd,输入g++ -v 如果出现类似下图结果,则安装成功:

        运行GNU的命令为:$ g++-Wall -o test test.cc ,其中 -o test 是编译器参数,指定了生成的可执行文件的文件名为test,如果省略,在win系统下会生成名为 a.exe 的可执行文件,-Wall 参数能对有问题的程序结构发出警告。

        不过在开发过程中,没有谁能保证没有一个bug出现,如果代码有一些小错误,就要不停的编译,会显得很麻烦。

所以,如何能快速的在 Sublime Text3 当中舒服的编写C++代码以及快速编译它呢?

 


  • 首先在sublime工具栏中依次选择:工具->编译系统->新建编译系统,复制以下代码并保存为mycpp

    {// "shell_cmd": "make""encoding": "utf-8","working_dir": "$file_path","shell_cmd": "g++ -Wall -std=c++0x \"$file_name\" -o \"$file_base_name\"","file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$","selector": "source.cpp","variants": [{ "name": "Run","shell_cmd": "g++ -Wall -std=c++0x \"$file\" -o \"$file_base_name\" && \"${file_path}/${file_base_name}\""},{ "name": "RunInCmd","shell_cmd": "g++ -Wall -std=c++0x \"$file\" -o \"$file_base_name\" && start cmd /c \"\"${file_path}/${file_base_name}\" & pause \""}]
    }

  • 新建文件 test.cpp(C++程序常见后缀名有.cc、.cpp、.cp、.cxx及.C),复制以下测试代码:

#include
int main(){std::cout<<"这是一个测试脚本"<}

按Ctrl +shift+B 选择mycpp是仅编译不运行,mycpp-Run编译运行,因为sublime不支持控制台输入,所以如果代码有cin函数,可以选择mycpp-RunInCmd调用cmd控制台编译运行。

如果编译后运行端出现中文乱码,一般是文件编码的问题,转换成GBK格式就ok了,可以参考传送门


推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
author-avatar
灭世师太
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有