sublime搭建c/c++编译环境


平时在IDE下面进行c/c++开发,总的来说比较方便,但是IDE占用资源较多,自己一般是写一点小程序,所以打算配置一下sublime来当做小程序的编译环境,懒得打开IDE。

配置流程总的来说比较简单,但是在过程中还是遇到一些问题。网络上的资料很混杂,有的实践的时候根本跑不通,个人经过测试总结了一下,希望能够帮助一下他人。

问题一:sublime无法直接安装插件问题?

描述:看网上有很多教程在sublime中直接输入关键字搜索插件然后下载,傻瓜式安装完成直接使用,之前自己做python的时候弄过,没有解决,这次又重新配置一下,但是,网上的教程基本上都试了一遍后,发现似乎并么有什么用!我的sublime版本是比新的sublime3。也就是说如果你是新下载的sublime,傻瓜式安装插件这条路需要慎重。

解决方法:在网上搜索一下需要的相关插件直接去github下载,然后放入自己的sublime安装目录中的->安装目录\Sublime Text3\Data\Packages中即可,还是比较简单的,如果有的插件放入后提示缺少.dll文件,可以去网上搜索下载一个

问题二:编译器的配置?

在配置编译器前需要下载将编译器添加到系统环境变量中,如果在cmd窗口中输入gcc  -v输出版本信息表明成功。然后依次点击菜单栏的工具-编译系统-新编译系统,输入编译编译选项保存为xxx.sublime-build即可,这个编译选项网上资料比较多,笔者测试后给出几个可用并且稍有不同的版本。(由于一般的小程序也涉及到输入输出,所以给出的版本全部带有控制台窗口)

版本一:编译c文件

{
	"working_dir": "$file_path",
	"cmd": "gcc -Wall \"$file_name\" -o \"$file_base_name\"",
	"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
	"selector": "source.c",
 
	"variants": 
	[
		{	
		"name": "Run",
        	"shell_cmd": "gcc -Wall \"$file\" -o \"$file_base_name\" && start cmd /c \"\"${file_path}/${file_base_name}\" & pause\""
		}
	]
}
版本二:编译c/c++

{
	"encoding": "utf-8",
	"working_dir": "$file_path",
	"shell_cmd": "g++ -Wall -std=c++11 \"$file_name\" -o \"$file_base_name\"",
	"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
	"selector": "source.c++",
 
	"variants": 
	[
		{	
		"name": "Run",
        	"shell_cmd": "g++ -Wall -std=c++11 \"$file\" -o \"$file_base_name\" && start cmd /c \"\"${file_path}/${file_base_name}\" & pause\""
		}
	]
}
版本三:带 gdb的编译c/c++

{
	"encoding": "utf-8",
	"working_dir": "$file_path",
	"shell_cmd": "g++ -Wall -std=c++11 \"$file_name\" -o \"$file_base_name\"",
	"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
	"selector": "source.c++",
 
	"variants": 
	[
		{	
		"name": "Run in sublime",
        	"shell_cmd": "g++ -Wall -std=c++11 \"$file_name\" -o \"$file_base_name\" && cmd /c \"${file_path}/${file_base_name}\""
		},
		{	
		"name": "CMD Run",
        	"shell_cmd": "g++ -Wall -std=c++11 \"$file\" -o \"$file_base_name\" && start cmd /c \"\"${file_path}/${file_base_name}\" & pause\""
		},
		{	
		"name": "gdb Debug",
        	"shell_cmd": "g++ -g -std=c++11 \"$file\" -o \"$file_base_name\" && start cmd /c gdb ${file_path}/${file_base_name} & pause"
		}
	]
}
版本四:编译c/c++( 修正控制台中文字符输出乱码问题)

{
 "cmd": ["g++", "${file}", "-fexec-charset=gbk","-o", "${file_path}/${file_base_name}", "&", "start", "cmd", "/c", "${file_base_name} & echo. & pause"],
 "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
 "working_dir": "${file_path}",
 "selector": "source.c, source.c++",
 "shell": true,
 "encoding":"cp936",
}
各个编译器配置有一些区别,如果在使用网上某些编译配置时出现类型错误

C:\Users\ADMINI~1\AppData\Local\Temp\ccL0aVye.o:moban.cpp:(.text+0x37): undefined reference to `std::ios_base::Init::~Init()'
C:\Users\ADMINI~1\AppData\Local\Temp\ccL0aVye.o:moban.cpp:(.text+0x58): undefined reference to `std::ios_base::Init::Init()'
D:/programs/codeblock/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: C:\Users\ADMINI~1\AppData\Local\Temp\ccL0aVye.o: bad reloc address 0x0 in section `.ctors'
D:/programs/codeblock/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
可以通过调整编译选项中的gcc为g++修正,他们关系如下:

// (1)gcc和g++都是GNU(组织)的一个编译器。
// (2)后缀名为.c的程序和.cpp的程序g++都会当成是c++的源程序来处理。不通的时gcc会把.c的程序处理成c程序。
// (3)对于.cpp的程序,编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++

问题三:在装插件sublimeclang时提示错误,错误原因如下:

sublime搭建c/c++编译环境_第1张图片

问题分析:大概原因是由于libclang不支持64位的,需要自己编译。

解决方法:自己编译或者下载一个liblang_x64.dll,文件可在后面下载

希望大家都能快速配好sublime编译环境





你可能感兴趣的:(环境搭建,sublime,c/c++,sublimetext,cc++,编译环境配置)