Vim+CMake+MinGW配置C/C++開發環境
Vim有多強就不必說了,一句話:要多強有多強。剛安裝好的Vim是比較平凡的,想要更得心應手,可以參考各種部落格或者github上開源的vimrc檔案。需要注意的是,Windows下Vim的目錄和配置檔案與Linux有所不同,配置檔案是$VIM/_vimrc,外掛目錄是$VIM/vimfiles;我這裡推薦文末的參考資料[1]。
我們希望的是,Vim像一個IDE一樣編寫原始碼,構建工程,編譯和除錯,不能說,我用Vim編輯好了程式原始碼,編寫了CMakeLists.txt,然後再從Vim中切出去,另開一個程式完成其他功能。在Normal模式下,可以通過 ! 字首可以執行 shell 命令,例如:
:!cmake CMakeLists.txt
:!mingw32-make
可以開幹了。Vim安裝過程略,CMake安裝過程略,MinGW安裝過程略。
安裝完成之後,將MinGW/bin和CMake/bin新增到環境變數中,以便cmd下能正常使用各種指令。
接下來就是激動的測試環節了。很多部落格上都用了“hello world cmake”來作為測試程式。test1.cpp和CMakeLists.txt都是仿照部落格[2][3][4]編寫。
test1.cpp
#include <iostream>
using namespace std;
int main(){
cout << "hello word cmake!!!" << endl;
return 0;
}
CMakeLists.txt
set(CMAKE_C_COMPILER "gcc")
set(CMAKE_C_FLAGS "-g -Wall -I C:\\MinGW\\include -L C:\\MinGW\\lib")
set(CMAKE_CXX_COMPILER "g++")
PROJECT(c_vim_test)
set(SRC_LIST test1.cpp)
ADD_EXECUTABLE(c_vim_test ${SRC_LIST})
MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR})
MESSAGE(STATUS "This is SOURCE dir " ${HELLO_SOURCE_DIR})
正常情況下,在我們已經配置好的Vim中輸入下面兩個命令,測試就可以完成
:!cmake -G "MinGW Makefiles"
:!make
出現了兩個問題
1.問題出在生成Makefile上,報了一個錯誤,大概意思是我的環境變數裡恰好有個git/sh.exe,而生成Makefile的時候cmd環境不能有sh.exe這個指令存在。無論是用一些程式碼託管,還是要改造Vim黑科技,按理說都離不開git,總不能生成Makefile之前去改一下環境變數然後,生成完再改回來吧。那麼只有尋求更精明的方式,由參考資料[5]給出:
只需要在Vim中將命令改為:
:!cmake -G "MinGW Makefiles" -DCMAKE_SH="CMAKE_SH-NOTFOUND"
第一個問題得以解決。
2.第二個問題說起來真的是zz問題,看到的部落格截圖大多都是這樣的:(圖源參考資料[2][4])
然而我輸入make真的沒有用啊!我的配置環境裡真的沒找到make程式,只有mingw32-make,後來我在一篇博文中看到,博主為了保持統一把mingw32-make直接改名為make使用,有點恍然大悟悵然若失的感覺,真的沒心情去考究舊版本的MinGW是不是有make程式了,反正把它當作不存在好了,編譯命令改為:
:!mingw32-make
編譯完成之後,就地執行程式:
:!c_vim_test.exe
上面的編碼以及操作過程,僅作為演示,實際使用時,對Vim的改造,對工程專案更細緻地管理等,都會讓整個過程顯得更加自然、流暢、高效。隨著學習的深入,我相信對Vim的掌握,對專案的管理以及編碼水平,都會逐步提高。
參考資料:
[1]https://github.com/yangyangwithgnu/use_vim_as_ide
[2]https://blog.csdn.net/xiaopangzi313/article/details/53115702
[3]https://blog.csdn.net/xiaopangzi313/article/details/53117923
[4]https://www.cnblogs.com/findumars/p/6375965.html
[5]https://stackoverflow.com/questions/41333215/mingw-sh-exe-must-not-be-in-your-path
相關文章
- centos配置vim c++開發環境CentOSC++開發環境
- VsCode配置C/C++開發環境VSCodeC++開發環境
- VSCODE 配置 C/C++ 開發環境VSCodeC++開發環境
- atom for mac配置c/c++開發環境筆記MacC++開發環境筆記
- macOS下使用VS Code配置C/C++開發環境MacC++開發環境
- Linux C++ 開發1 - 搭建C++開發環境LinuxC++開發環境
- ubutu c++ 環境配置C++
- Linux 開發環境 -- C/C++開發環境編譯安裝Linux開發環境C++編譯
- C++入門(3):C++開發環境搭建C++開發環境
- VS Code C/C++ 環境配置C++
- ubuntu 8.04 C/C++開發環境搭建UbuntuC++開發環境
- VS Code配置C++環境C++
- macOS下使用VS Code配置gcc、gdb搭建C/C++開發環境MacGCC++開發環境
- vscode 配置c++環境VSCodeC++
- ArchLinux配置OpenCV C++環境LinuxOpenCVC++
- Ubuntu之C++開發環境的搭建UbuntuC++開發環境
- VSCode中配置 C/C++ 環境VSCodeC++
- 開發環境配置開發環境
- 10 個免費的 C/C++ 整合開發環境C++開發環境
- CLion 配置 C C++ 編譯環境(MinGW)C++編譯
- emacs開發環境配置(4)——rust開發環境Mac開發環境Rust
- VSCode使用優化(二):簡單快速地配置C/C++開發環境VSCode優化C++開發環境
- 配置開發環境、生成環境、測試環境開發環境
- CLion 2022 for Mac(C/C++整合開發環境)MacC++開發環境
- Linux下的C/C++編譯環境配置LinuxC++編譯
- react 配置開發環境React開發環境
- js開發環境配置JS開發環境
- Java開發環境配置Java開發環境
- weex開發環境配置開發環境
- Arduino開發環境配置UI開發環境
- Ubuntu開發環境配置Ubuntu開發環境
- Eclipse + MinGW搭建C++開發環境踩坑EclipseC++開發環境
- TreeFrog Framework(C++ web framework, based on Qt)開發環境搭建FrameworkC++WebQT開發環境
- VScode中配置C++執行環境VSCodeC++
- Docker配置PHP開發環境DockerPHP開發環境
- MacOS 配置 Flutter 開發環境MacFlutter開發環境
- MacOS PHP 開發環境配置MacPHP開發環境
- (二) electron 開發環境配置開發環境