zoukankan      html  css  js  c++  java
  • Sublime Text3 & MinGW & LLVM CLang 安装配置CC++编译环境

    Sublime Text是一款强大的跨平台代码编辑器,小巧而且丰富实用的功能是Visual Studio不能比拟的,但是编译运行是一个软肋,本文通过在sublime中配置g++编译器实现程序的编译功能。具体步骤如下:

    (一)       下载安装Sublime text3 for windows

    (二)       下载安装 MinGW

    (三)       下载安装 LLVM CLang

    (四)       Sublime Text3配置

    (五)       编译测试

    (六)       配置编译C和CPP环境

    (七)       Sublime Text3的使用技巧

    一、下载安装Sublime text3 for windows

    下载地址:http://www.sublimetext.com/3

    二、下载安装 MinGW与系统变量设置

    本文使用的C/C++编译器是gcc/g++,可选MinGW(for 32 bit Windows)或者MinGW-W64(for 32 and 64 bit Windows),如果你使用的操作系统是64位的,建议安装MinGW-W64。([科普]MinGW vs MinGW-W64及其它:http://tieba.baidu.com/p/3186234212

    2.1.1 安装MinGW

    下载地址:http://sourceforge.net/projects/mingw/

    软件安装界面:

     

    安装完成后会让用户选择需要下载的Package

    选择要下载的Package:(先选Basic Setup,勾选最新的并应用安装;然后再选All Packages的MinGW Compiler Suite,添加 The GNU C++ Compiler 的相关项即可)

     

     如图所示,选择 MinGW Compiler Suite之后,添加 The GNU C++ Compiler 的相关项即可。

    2.1.2 设置环境变量

    右击我的电脑,点属性->高级->环境变量。

      

    1. 在环境变量PATH 添加系统 MinGW 的实际安装位置,如: C:\Program Files\MinGW 或者比如本文中演示的C:\MinGW\bin。在PATH里加入C:\MinGW\bin(具体路径请根据你的MinGW选择)。如果PATH里面还有其他的变量,记得要加个英文半角分号。一般 PATH 中的变量会非常的多,不同变量之间使用;分隔。

    1. 新建LIBRARY_PATH变量,如果有的话,在值中加入C:\MinGW\lib,这是标准库的位置。

     

    1. 新建C_INCLUDEDE_PATH变量,值设为C:\MinGW\include。

     

    1. 也可以按此设置,这种方式比较全,控制面板--〉系统--〉系统详细设置--〉环境变量
    MINGW_PATH=C:\mingw 
    
    C_INCLUDE_PATH=%MINGW_PATH%\include;%MINGW_PATH%\lib\gcc\mingw32\3.4.5\include 
    
    CPLUS_INCLUDE_PATH=%MINGW_PATH%\include\c++\3.4.5;%MINGW_PATH%\include\c++\3.4.5\mingw32;%MINGW_PATH%\include\c++\3.4.5\backward;%C_INCLUDE_PATH% 
    
    LIBRARY_PATH=%MINGW_PATH%\lib;%MINGW_PATH%\lib\gcc\mingw32\3.4.5 
    
    PATH=%MINGW_PATH%\bin;%MINGW_PATH%\libexec\gcc\mingw32\3.4.5 

      注意:上面的很多3.4.5这个是gcc的版本号,要以真实的文件夹为准。

    1. 检查变量设置:Win+R输入: cmd ,在命令行中输入: g++ -v ,有内容输入证明环境变量配置正确.如果出现 'g++' 不是内部或外部命令,也不是可运行的程序或批处理文件。 检查上一步配置.

      

    如果出现上面的画面,说明了你安装成功了,否则就是环境变量设置的问题。需要修改一下环境变量。在已经存在的环境变量前面添加上mingw的路径。因为Windows的环境变量修改之后不会立马生效,需要重启电脑。如果想省事,不想重启电脑的话可以直接在cmd中输入set path c:\这样环境变量就会被强制刷新。

    2.2 安装MinGW-W64

    下载地址:https://sourceforge.net/projects/mingw-w64/files/mingw-w64/

     

    下载最新在线安装文件MinGW-W64-install.exe,执行后,运行安装目录下的mingw-w64.bat,其目的是将../MingGW-W64/bin目录添加到系统PATH中而已。

     

    或者直接从网站下载对应版本压缩包,如x86_64-7.1.0-release-posix-seh-rt_v5-rev2.7z,然后将其解压到本地某个目录下,如将该压缩包内的mingw64目录解压到C盘根目录,即C:\mingw64,然后将“C:\mingw64\bin”添加到系统PATH中即可使用。

     

    三、下载安装 LLVM CLang 

    (ST2中有sublimeClang插件,但ST3中没有,可以手动安装,但很麻烦,作者也不更新了,所以选择其他插件进行代码校验、自动完成等)

    1. 下载LLVM,地址:http://llvm.org/releases/download.html
    2. 安装并将路径添加到系统环境变量PATH中;

    四、Sublime Text3配置

    1. 打开ST3,安装Package Control

    按快捷键“ctrl + ` ”(esc下面那个键)或View > Show Console,在弹出的输入框中输入下面内容然后回车:

    import urllib.request,os,hashlib; h = 'df21e130d211cfc94d9b0905775a7c0f' + '1e3d39e33b79698005270310898eea76'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

    注释20170820:该内容从https://packagecontrol.io/installation#st3  (原使用网址https://sublime.wbond.net/installation#st3)上拷贝而来。

    安装好后ctrl + shift + p则可打开,然后输入package control, 选择Install相关的选项,一会就会弹出很多可以安装的插件。点击菜单栏中的Preferences-<Browse Packages...大多数插件会安装在弹出的窗口所在的路径中。

    1. 打开ST3,ctrl + shift + p>>install,等待一会后,安装Sublimelinter插件;
    2. 然后继续安装Sublimelinter-contrib-Clang插件。

    五、编译测试

    提示错误:

     

    自动完成:

     

     关于编译,ST3默认即可;生成的可执行文件在cpp同目录下。

    ctrl+B:生成

    ctrl+shift+B:运行

    六、配置编译C和CPP环境

    在ST3菜单栏选择Tools -> Build System -> New Build System...,复制下面的代码并按编译c或cpp不同进行相应命名保存即可,用G++编译cpp程序,可命名为C++ Bulider.sublime-build,用GCC编译C程序,可命名为GCC Bulider.sublime-build。

    // Put this file here:
    
    // "C:\Users\[User Name]\AppData\Roaming\Sublime Text 3\Packages\User"
    
    // Use "Ctrl+B" to Build and "Crtl+Shift+B" to Run the project.
    
    // OR use "Tools -> Build System -> New Build System..." and put the code there.
    
    {
    
    //用G++编译cpp程序,可命名为C++ Bulider.sublime-build
    
    "shell_cmd": "g++ -std=c++11 \"${file}\" -o \"${file_path}/${file_base_name}\"",
    
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    
    "working_dir": "${file_path}",
    
    "selector": "source.c, source.c++",
    
    "variants":
    
    [
    
    {
    
    "name": "Run",
    
    "shell_cmd": "g++ -std=c++11 \"${file}\" -o \"${file_path}/${file_base_name}\" && start cmd /c \"\"${file_path}/${file_base_name}\" & pause\""
    
    //"shell_cmd": "g++ -std=c++11 \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\""
    
    }
    
    ]
    
    //也可用此方法编译C++程序(备用方案)
    
    // "cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}"],
    
    // "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    
    // "working_dir": "${file_path}",
    
    // "selector": "source.c, source.c++",
    
    // "encoding": "cp936",
    
    // "shell": true,
    
    // "variants":
    
    // [
    
    // {
    
    // "name": "Run",
    
    // //"cmd": ["CMD", "/U", "/C", "g++ ${file} -o ${file_base_name} && ${file_base_name}"]
    
    // "cmd": [ "start", "${file_path}/${file_base_name}.exe"]
    
    // }
    
    // ]
    
     
    
    //用GCC编译C程序,可命名为GCC Bulider.sublime-build
    
    // "shell_cmd": "gcc \"${file}\" -std=c99 -o \"${file_path}/${file_base_name}\"",
    
    // "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    
    // "working_dir": "${file_path}",
    
    // "selector": "source.c",
    
    // "shell": true,
    
    // "variants":
    
    // [
    
    // {
    
    // "name": "Run",
    
    // "shell_cmd": "gcc \"${file}\" -std=c99 -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\""
    
    // }
    
    // ]
    
    //用此方法也可编译C程序(备用方案)
    
    // "shell_cmd" : "gcc $file_name -std=c99 -o ${file_base_name}",
    
    // "working_dir" : "$file_path",
    
    // "shell": true,
    
    }

    七、Sublime Text3的使用技巧

    7.1推荐插件

    • Convert To UTF8

    将文件编码从GBK转换成UTF8,可以解决中文乱码,快捷键Ctrl+Shift+C

    • Tab的中文显示为方块问题解决办法:

    在sublime text 3中,Preference, Settings,->User,添加:

    "dpi_scale": 1.0,

    "font_size": 12,

    建议Settings-User配置:

    {
    	"dpi_scale": 1.0,
    	"font_size": 12,
    	"color_scheme": "Packages/User/SublimeLinter/Monokai (SL).tmTheme",
    	"ignored_packages":
    	[
    		"Vintage"
    	],
    	"line_padding_bottom": 1,
    	"line_padding_top": 1,
    "tab_size": 4,
    	"translate_tabs_to_spaces": true,
    	"word_wrap": "true"
    }
    • BracketHighlighter

           括弧高亮插件,清晰明了

     

    • ChineseLocalizations

           汉化插件,支持无缝切换中文、日语、英文. 使用主菜单的帮助/Language子菜单来切换语言。要换回英语不需要卸载本插件,请直接从菜单切换英文。

    •  如果想要删除插件,Ctrl+Shift+P调出命令面板,使用Remove Package选项,选择要删除的插件即可;更新插件:Upgrade Packages。

    7.2快捷键

    Ctrl+L 选择整行(按住-继续选择下行)
    
    Ctrl+KK 从光标处删除至行尾
    
    Ctrl+K Backspace 从光标处删除至行首
    
    Ctrl+J 合并行(已选择需要合并的多行时)
    
    Ctrl+KU 改为大写
    
    Ctrl+KL 改为小写
    
    Ctrl+D 选择字符串 (按住-继续选择下个相同的字符串)
    
    Ctrl+M 光标移动至括号内开始或结束的位置
    
    Ctrl+/ 注释整行(如已选择内容,同“Ctrl+Shift+/”效果)
    
    Ctrl+Shift+c转换为utf8
    
    Ctrl+R 搜索指定文件的函数标签
    
    Ctrl+G 跳转到指定行
    
    Ctrl+KT 折叠属性
    
    Ctrl+K0 展开所有
    
    Ctrl+U 软撤销
    
    Ctrl+T 词互换
    
    Tab 缩进 自动完成
    
    Shift+Tab 去除缩进
    
    Ctrl+F2 设置书签.
    
    F2 下一个书签
    
    Shift+F2 上一个书签
    
    shift+鼠标右键 列选择
    
    Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑
    
    Alt+. 闭合当前标签
    
    F6 检测语法错误
    
    F9 行排序(按a-z)
    
    F11 全屏模式
    
    Ctrl+Enter 光标后插入行
    
    Ctrl+Shift+Enter 光标前插入行
    
    Ctrl+Shift+[ 折叠代码
    
    Ctrl+Shift+] 展开代码
    
    Ctrl+Shift+↑ 与上行互换
    
    Ctrl+Shift+↓ 与下行互换
    
    Ctrl+Shift+A 选择光标位置父标签对儿
    
    Ctrl+Shift+D 复制光标所在整行,插入在该行之前
    
    ctrl+shift+F 在文件夹内查找,与普通编辑器不同的地方是sublime允许添加多个文件夹进行查找
    
    Ctrl+Shift+K 删除整行
    
    Ctrl+Shift+L 鼠标选中多行(按下快捷键),即可同时编辑这些行
    
    Ctrl+Shift+M 选择括号内的内容(按住-继续选择父括号)
    
    Ctrl+Shift+P 打开命令面板
    
    Ctrl+Shift+/ 注释已选择内容
    
    Ctrl+PageDown 、Ctrl+PageUp 文件按开启的前后顺序切换
    
    Ctrl+鼠标左键 可以同时选择要编辑的多处文本
    
    Shift+鼠标右键(或使用鼠标中键)可以用鼠标进行竖向多行选择
    
    Shift+Tab 去除缩进
    
    Alt+Shift+1~9(非小键盘)屏幕显示相等数字的小窗口

    (本文部分内容及图片来源于网络,感谢原文作者分享。)

  • 相关阅读:
    mysql02-mysql的json操作函数
    一个mysql表最多可以有几列? 一个mysql表最多可以创建多少个索引? 单个索引最多可以包含多少个列? 一个索引最多可以有多长?这个几个问题你都不一定知道正确答案
    转载-mysql 数据库的设计三范式
    转载-Java 为什么是值传递
    Navicat远程连接不上mysql解决方案
    windows系统如何查看端口被占用、杀进程
    mysql01-mysql基础知识
    mysql 远程连接速度慢的解决方案
    centos8 安装 jdk
    CentOS8下安装mysql8
  • 原文地址:https://www.cnblogs.com/JoyPoint/p/7400549.html
Copyright © 2011-2022 走看看