场景
1.Sublime Text 3
作为老牌的编辑器性能和稳定性还是很不错的. 它一般只启动了单进程, 不像vscode
那样启动一个简单的项目全部进程加起来基本上都要300M
的内存使用量. 如果只是想快速轻便验证C++
程序,它还是比vscode
方便和快速的.
2.Sublime Text 3
需要购买注册, 但是也可以不注册,不注册它就是偶尔会弹出窗口提醒你注册,关掉可以继续使用.
安装Sublime Text 3
说明
1.Sublime Text 3
的C++
支持官方只有语法高亮支持,没了!它也有项目单独的编译运行配置,也有全局的编译运行配置。项目配置不是必须的,可以通过菜单->Project->Save Project As...
来保存当前所有打开的文件和文件夹作为配置项,配置项里也可以添加构建配置,和全局的基本一样.详细的说明点这里.
项目文件例子.sublime-project. 配置好的可以在Tools->Build System
里找到构建名字.name
{
"folders":
[
{
"path": "."
},
{
"path": "E:\\Project\\Company\\73.wtl-project"
}
],
"build_systems":
[
{
"name":"make-cygwin-test",
"cmd": ["E:/software/cygwin64/bin/make.exe","-C","${project_path}\\test\\cygwin","-f", "${project_path}\\test\\cygwin\\Makefile","CONF=Debug"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${project_path}\\test\\cygwin",
"selector": "source.c, source.c++",
"env":
{
"PATH": "E:/software/cygwin64/bin"
},
"variants":
[
{
"name": "Run",
"cmd": ["${project_path}\\test\\cygwin\\dist\\Debug\\app.exe","--gtest_filter=test_ScanPartition.TestWindowsFileRecovery"]
},
{
"name": "Clean",
"cmd": ["E:/software/cygwin64/bin/make.exe","-C","${project_path}\\test\\cygwin","-f", "${project_path}\\test\\cygwin\\Makefile","CONF=Debug","clean"]
}
]
},
{
"name":"make-cygwin",
"cmd": ["E:/software/cygwin64/bin/make.exe","-C","${project_path}\\cygwin","-f", "${project_path}\\cygwin\\Makefile","CONF=Debug"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${project_path}\\cygwin",
"selector": "source.c, source.c++",
"env":
{
"PATH": "E:/software/cygwin64/bin"
},
"variants":
[
{
"name": "Run",
"cmd": ["${project_path}\\cygwin\\dist\\Debug\\app.exe"]
},
{
"name": "Clean",
"cmd": ["E:/software/cygwin64/bin/make.exe","-C","${project_path}\\cygwin","-f", "${project_path}\\cygwin\\Makefile","CONF=Debug","clean"]
}
]
}
]
}
2.其实Sublime Text 3
开发C/C++
就只是缺少头文件跳转和gdb
集成, 如果这个集成了, 未必不如vscode
.
Cygwin C/C++开发编译运行配置
1.选择菜单->Preferences->Browse Packages...
打开了配置目录,进入User
,新建一个g++.sublime-build
文件.
增加以下内容,cmd
就是运行的命令,env
设置编译后可执行文件的运行搜索目录, 比如有对c++
的dll依赖,需要把E:/software/cygwin64/bin
加入配置。当然也可以在系统环境变量path
添加这个路径,但是会污染运行环境,不推荐这样做。-std=c++11
是对C++11
的支持, 当然这个也就是g++
的编译参数,关于c++11
我开了一个学院课程, 发布完后欢迎来学习C++11语言特性和标准库.variants
是增加另外的任务,比如以下增加了运行任务, 在按ctrl+shift+b
时会让你选择g++
或者g++ - Run
任务执行.
{
"cmd": ["E:/software/cygwin64/bin/g++.exe","-std=c++11", "${file}", "-o", "${file_path}/build/${file_base_name}"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c, source.c++",
"env":
{
"PATH": "E:/software/cygwin64/bin"
},
"variants":
[
{
"name": "Run",
"cmd": ["${file_path}/build/${file_base_name}"]
}
]
}
2.编辑好g++.sublime-build
之后,我们需要在需要编译的.cpp
文件目录新建一个build
目录, 以便放编译输出. 如果需要放项目目录,那么可以把项目目录拖放到OPEN FILES
窗口里。如果没有显示OPEN FILES
窗口,可以通过菜单View->Side Bar->Show Open Files
.
3.选择菜单Tools->Build System->g++
, 会应用上我们设置好的编译配置. 首页打开test.cpp
文件, 之后按ctrl+shift+b
,选择弹出的g++
,那么就会编译. 在以下的输出窗口会显示编译结果。
编译错误:
选择g++ - Run
就会运行, 在以下的输出窗口会显示输出, 也可通过点击左下角的小窗口,选择Build Result
重新显示输出窗口。
3.调试的只能进入gdb
环境里,我在当前项目建了一个批处理:
cmd-gdb-debug.bat
cmd /K "set path=%path%;E:\software\cygwin64\bin; & gdb --version"
之后建一个批处理gdb-init-command.bat
来进行加载断点配置文件和运行指定目录下的exe.当然这个批处理要在cmd-gdb-debug.bat
打开的命令行里运行才可以。调试只能通过原始的输入gdb
命令调试了。关于gdb
调试可以看命令行使用gdb调试程序简单应用.
gdb --command=breakpoint.txt --args dist/Debug/app.exe
其他
1.为了方便开发,我添加了一些自定义快捷键。在菜单Preferences->Key Bindings
,在右边的User
配置项里添加以下的配置,特别好用的就是ctrl+shift+r
可以在项目里跳转到指定的函数.alt+/
自动完成.ctrl+d
删除行.ctrl+shift+f
重新缩进,简单版的格式化代码。
[
{ "keys": ["ctrl+d"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete Line.sublime-macro"} },
{ "keys": ["ctrl+shift+r"], "command": "build", "args": {"variant": "Run"} },
{ "keys": ["ctrl+shift+f"], "command": "reindent"},
{ "keys": ["alt+/"], "command": "auto_complete" },
{ "keys": ["ctrl+shift+r"], "command": "goto_symbol_in_project" }
]
2.至于多个文件的项目编译,只能通过makefile
来配置编译,关于makefile
的配置,可以看 通用Makefile配置编译选项. 更完整的通过分析头文件是否更新来编译查看从netbeans里提取的通用构建C++项目的Makefile文件.