toc

参考链接:

  1. Window10上CLion极简配置教程
  2. 学生免费注册Pycharm专业版

​ 姓名:FLYMAN

​ 邮箱:fly_cjb@163.com

01 为什么使用CLion?

相对来说,CLion相对Visual studio,更加地小巧、智能,对于像我这样需要用C++在Linux系统下写SLAM,平时偶尔做项目又需要在Windows系统下开发,而且用惯了Pycharm的同学,还是比较方便。

相对Visual studio来说,我个人认为,它有以下几点优点:

  • 用CMake来管理编译依赖,代码更容易做到跨平台。

    代码如果不调用Windows系统API,在Windows系统下用CLion编写的程序,改一改CMake程序,差不多就可以运行。

  • 更加地轻巧,Visual studio更像一个庞然大物,我16年的ThinkPad X1(16G,I7-6300)运行起来竟然卡顿,每次调试,启动要半天~(Visual studio 2019)。
  • LeetCode刷题的时候,需要多个程序入口(Visual studio工程只允许一个主程序入口,你不能总是新建一个新的工程,或者把主函数注释掉吧?虽然有个更好的方法是写一个测试函数,在主函数里测试,但总归也是不方便的)
  • …..

还有,CLion的代码提示更加地智能,看下面两段代码:

CLion Visual studio

CLion支持:

  • 未使用的变量、函数
  • 可能未初始化的局部变量
  • 无限循环
  • 循环中未更新的循环条件(死循环)
  • 不可达代码
  • 一些可以简化的地方,比如某些 if -> 三目表达式
  • 拼写检查(支持驼峰、下划线等命名风格)
  • 字符串中不正确的英文拼写
  • 不正确的 printf/scanf 族函数的格式字符串
  • 良好的代码规范提示

还有别说跨平台性,Visual studio在一台电脑上写的代码,迁移到另一台同样环境下运行,光配置属性表这些就要一帮经验丰富的C++开发人员的老命,相反CLion改一改CMake列表就可以了。还有要命的是不同Visual studio版本写的代码,竟然不兼容~CLion更加支持Python

对我而言,如果这个项目不需要实际落地,我还是更愿意写Python代码,而在需要做性能优化,或者说必须要用到某些C++库的情况下,用Python来调用C/C++/.dll/.a/.so/程序)…

当然Visual studio也有CLion比不了的地方。不过这里仁者见仁智者见智,我个人认为,在CLion出来之前,Visual studio是这个星球上最好的C++代码开发IDE,但在CLion出来之后,这个问题还有待商榷。

可能你现在还不能体会我说的CLion优点,在之后的课程中,你会慢慢体会到,用CLion来写代码简直是一种享受。

当然,你使用哪个IDE无关紧要,我们关注的是C++语言的东西,在不涉及到特别底层的情况下(至少在SLA领域),C++在这些编译器、平台上算法层面的结果都是一样的,所以,无论你用哪个编译器,舒服就好。

02 CLion安装方法

CLion的价格有点贵~,一年大概要1700块钱,不过幸运的是学生免费的,如果你工作了的话,有能力可以支持正版:

  1. 首先,下载并安装CLion(按默认选项,直接点开安装即可):地址

  2. 注册CLion账号:地址

    CLion跟Pycharm是一样的,对学生来说,注册好之后,JB家所有的产品都可以免费使用。

  3. 配置MinGW

    简单理解,MinGW是我们是Linux系统下C++编译器gcc的Windows实现,帮助我们将C++代码翻译成机器语言。

    注意:在Windows下用MinGW编译的程序依然不能在Linux系统下运行。之所以我们用它,是因为CMake会用到gcc编译器来进行代码编译,而gcc编译器在Windows下的实现就是MinGW。

    • 下载MinGW:地址

      MinGW-W64 GCC-8.1.0

      链接:https://pan.baidu.com/s/1zd5hgyvXJdBxRrj6aq4JKg
      密码:obb8

      我们要拉到最下面,点红色按钮,离线安装版本(你也可以下载GCC-7.3.0或者更旧的版本,这些版本间的差别并不大):

    它是编译好的版本,不需要安装,直接解压缩到随便哪个目录即可,但是不能有中文,比如说,我解压到D:\software路径下:

  4. 配置CLion

    打开CLion,左上角File-Settings-Build-Toolchains,然后点击 + 号,将相应的信息填入即可(一般而言,你只需要制定Environment环境的路径即可,其它的CLion会自动帮你填写进去,你也可以自己指定):

03 CLion的基本使用

  1. 新建new project

  2. 设置路径(还是不能有中文路径)跟C++标准(推荐C++11版本,大多数公司用这个版本)

  3. 运行c++程序(等它转完):

    注意:在这里,我们程序只有一个入口,就是main函数,你将鼠标放在main函数外,是不能点击运行的。

在这个工程里,主要有两个文件,两个文件对于CMake管理下的程序来说缺一不可:

  • main.cpp(.cpp是C++源文件的后缀名)

    代码区,我们要实现相应功能,就要在代码区写相应的语句,比如这里,cout << ...,,它实现的工鞥就是向屏幕打印一串Hello World的东西。

  • CMakeLists.txt(CMake文件)

    用来管理哪些文件需要编译、文件的编译顺序、相互的依赖关系。系统默认创建的CMakeLists.txt文件如下:

04 课程形式及答疑说明

更详细的关于C++的内容我们后面再讲,之后的课程有三点注意事项:

  1. 大多数内容将通过视频的形式完成,每个视频5~10分钟,将按一个个知识点进行展开。
  2. 笔记内容不再特别详细,如遇到问题,请自行百度,当实在弄不明白了,有两种处理方式:
    • 在github上提issue(我相信你的问题也是大家的问题,所以欢迎提问)
    • 发送我的邮箱

    务必包含两个内容:

    • 问题描述及截图
    • 代码出错的区域

另外,有个小提示,请及时复习,并对笔记进行整理(Markdown、思维导图等),方便后续自己某个点忘记的时候,自己去查询。

 

第一讲 Windows10系统下IDE-CLion的安装与配置的更多相关文章

  1. redis在windows和Linux系统下的下载、安装、配置

    1.下载redis安装包 在redis的官网只有Linux系统下的安装包,微软的GitHub上有提供windows版本的redis安装包 redis中文网:http://www.redis.cn/ 微 ...

  2. linux系统下FTP服务器的安装和配置

    FTP是File Transfer Protocol(文件传输协议),就是专门用来传输文件的协议.简单地说,支持FTP协议的服务器就是FTP服务器. PORT模式: 首先客户端开启一个非特权端口N(大 ...

  3. linux 系统下IntelliJ IDEA的安装及使用

    由于刚刚进入研究生阶段,通过几个月对大数据的学习,从java到hadoop,再到scala到spark.在这我写一下我在ubuntu系统下intelliJ IDEA的安装和配置.首先我的ubuntu系 ...

  4. Windows10系统下安装python2和python3双版本

    Windows10系统下安装Python3的步骤已经演示过(详见:https://www.cnblogs.com/schut/p/8399195.html),此处不再赘述Python的下载,主要介绍在 ...

  5. Mac系统下使用VirtualBox虚拟机安装win7--第一步 安装vbox虚拟机

    Mac系统下使用VirtualBox虚拟机安装win7操作步骤: 第一步 安装vbox虚拟机 1.先下载vbox,下载地址:: https://www.virtualbox.org/wiki/Down ...

  6. Windows10系统下,彻底删除卸载MySQL

    本文介绍,在Windows10系统下,如何彻底删除卸载MySQL... 1>停止MySQL服务开始->所有应用->Windows管理工具->服务,将MySQL服务停止.2> ...

  7. windows10系统下设置mtu值的方法

     windows10系统下设置mtu值的方法 http://www.xitongcheng.com/jiaocheng/win10_article_34701.html 以下为服务器上使用  ip ...

  8. 在Windows10系统下安装Oracle 11g数据库

    在Windows10系统下安装Oracle 11g数据库 https://blog.csdn.net/wei1992_6/article/details/60054727

  9. Windows10系统下,如何彻底删除卸载MySQL

    本文介绍,在Windows10系统下,如何彻底删除卸载MySQL... 1>停止MySQL服务开始->所有应用->Windows管理工具->服务,将MySQL服务停止.2> ...

随机推荐

  1. PyCharm远程连接服务器简明教程

    转自本人知乎(https://zhuanlan.zhihu.com/p/149040742) 由于实验室的GPU都是放在远程服务器上,因此一直使用MobaXterm利用SSH远程跑实验,但是MobaX ...

  2. Asp.Net 五大对象及作用

    Connection(连接对象):与数据源建立连接. DataAdapter(适配器对象):对数据源执行操作并返回结果,在DataSet与数据源之间建立通信,将数据源中的数据写入DataSet中,或根 ...

  3. Java并发编程-Unsafe实现原理与Unsafe应用解析

    前言 Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别.不安全操作的方法,如直接访问系统内存资源.自主管理内存资源等,这些方法在提升Java运行效率.增强Java语言底层资源 ...

  4. 虚拟机 VMware 设置VMWARE通过桥接方式使用主机无线网卡上网

    环境:WIN7旗舰版,台式机,U盘无线上网卡. 虚拟软件:VMware9.0,虚拟系统:CentOS6.4 需要实现虚拟机以独立机形式工作和上网. 先介绍一下VMware网络设置的三种方式 1 Hos ...

  5. SQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION 'utf8mb4_unicode_ci' is not valid for CHARACTER SET 'binary'

    SQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION 'utf8mb4_unicode_ci' is not valid ...

  6. Python实用笔记 (20)面向对象编程——继承和多态

    当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). ...

  7. for循环里的break,continue和return有什么差别

    break: 此语句导致程序终止包含它的循环,并进行程序的下一阶段(整个循环后面的语句),即,不是跳到下一个循环周期而是退出循环.如果break语句包含在嵌套循环里,它只跳出最里面的循环. 如下代码 ...

  8. 微信开发_Exception_02_"errcode":40164,"errmsg":"invalid ip 61.172.68.219, not in whitelist hint

    ip查询网址: http://www.ip.cn/ 一.异常现象 今天开始做微信开发,在办公室时能正常获取access_token,晚上回家之后获取access_token时却报出下列错误信息: {& ...

  9. Java 从入门到进阶之路(二十六)

    在之前的文章我们介绍了一下 Java 中的  集合框架中的Collection 的子接口 List,本章我们来看一下 Java 集合框架中的Collection 的子接口 Queue. 在之前我们讲 ...

  10. jvm字节码和类加载机制

    Class类文件的结构 任何一个Class文件都对应着唯一一个类或接口的定义信息,但反过来说,类或接口并不一定都得定义在文件里(类和接口也可以用反射的方式通过类加载器直接生成) Class文件时一组以 ...