[Sublime Text 3]_[配置C/C++開發編譯運行環境]

場景

1.Sublime Text 3作爲老牌的編輯器性能和穩定性還是很不錯的. 它一般只啓動了單進程, 不像vscode那樣啓動一個簡單的項目全部進程加起來基本上都要300M的內存使用量. 如果只是想快速輕便驗證C++程序,它還是比vscode方便和快速的.

2.Sublime Text 3需要購買註冊, 但是也可以不註冊,不註冊它就是偶爾會彈出窗口提醒你註冊,關掉可以繼續使用.

安裝Sublime Text 3

下載安裝Sublime Text 3

說明

1.Sublime Text 3C++支持官方只有語法高亮支持,沒了!它也有項目單獨的編譯運行配置,也有全局的編譯運行配置。項目配置不是必須的,可以通過菜單->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文件.

參考

Build Systems

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章