在Linux里面混了一个多月,vim编程用得甚爽。无奈前天将Linux里面的编程文件夹误删,而技术不精无法找回,悲痛欲绝。再者,无限怀念windows里面的游戏,并觉得现在在Linux里面也学不到什么东西,遂决定回到windows。

回到windows里面第一件事就是想把Linux里面的vim完美移植到windows。花了两天功夫,大部分功能已基本能够实现。当中遇到的最大困难是在windows里面实现用gcc/g++编译调试c/cpp文件,现在就把我这个过程完整记录下来。

1,首先下载安装MinGW,下载地址在 http://sourceforge.net/projects/mingw/。这个是边下载边安装的,下载完成即安装完成。我的安装目录是G:\MinGW。

2,设置环境变量。右击我的电脑,点属性->高级->环境变量。然后:

1、在PATH里加入G:\MinGW\bin,记得,如果里面还有其他的变量,记得要加个分号啊,分号得在英文输入模式下输入的。

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

3、新建C_INCLUDEDE_PATH变量,值设为G:\MinGW\include。

4、新建CPLUS_INCLUDE_PATH变量,值为G:\MinGW\include;G:\MinGW\include\c++\4.5.0;G:\MinGW\include\c++\4.5.0\backward;G:\MinGW\include\c++\4.5.0\mingw32

具体路径请根据你的MinGW选择。

3,在你的_vimrc文件中配置编译调试选项。我的个人配置如下:

"定义CompileRun函数,用来调用进行编译和运行

func CompileRun()

exec "w"

"C程序

if &filetype == 'c'

exec "!gcc -Wall -enable-auto-import % -g -o %<.exe"

"c++程序

elseif &filetype == 'cpp'

exec "!g++ -Wall -enable-auto-import  % -g -o %<.exe"

"Java程序

elseif &filetype == 'java'

exec "!javac %"

endif

endfunc

"结束定义CompileRun

"定义Run函数

func Run()

if &filetype == 'c' || &filetype == 'cpp'

exec "!%<.exe"

elseif &filetype == 'java'

exec "!java %<"

endif

endfunc

"定义Debug函数,用来调试程序

func Debug()

exec "w"

"C程序

if &filetype == 'c'

exec "!gcc % -g -o %<.exe"

exec "!gdb %<.exe"

elseif &filetype == 'cpp'

exec "!g++ % -g -o %<.exe"

exec "!gdb %<.exe"

"Java程序

elseif &filetype == 'java'

exec "!javac %"

exec "!jdb %<"

endif

endfunc

"结束定义Debug

"设置程序的运行和调试的快捷键F5和Ctrl-F5

map <F5> :call CompileRun()<CR>

map <F6> :call Run()<CR>

map <C-F5> :call Debug()<CR>

4,完成上面几步基本上就大功告成啦,尽情享受vim编程吧。

可能遇到的问题:

编译的时候可能会出现:

Info: resolving std::cout  by linking to __imp___ZSt4cout (auto-import)

c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: warning: a

uto-importing has been activated without --enable-auto-import specified on the c

ommand line.

This should work unless it involves constant data structures referencing symbols

from auto-imported DLLs.)

在编译命令中加入 -enable-auto-import 就行啦

源文档 <http://shoppon.diandian.com/post/2010-11-02/6889610>

[vim配置]windows下在vim中使用gcc/g++编译调试c/cpp文件的更多相关文章

  1. Windows下Git Bash中VIM打开文件中文乱码

    Windows下Git Bash中VIM打开文件中文乱码,解决方法是: 步骤一 admin@DESKTOP-O99620V MINGW64 /d/项目GGE/Hard_for_GGE (master) ...

  2. 第21月第9日 windows下使用vim+ctags+taglist

    1. windows下使用vim+ctags+taglist 最近在公司的同事指导下,学会使用这个东西编写代码,效率提高了不少.所以记录下来,方便大家使用. 1. 下载gvim74.exe文件,并安装 ...

  3. windows下vi/vim编辑器的基本操作

    windows下vi/vim编辑器的基本操作 Contents 1. 工具准备(下载gvim) 2. vi/vim基本入门 2.1. 安装 2.2. 基本使用 3. vi/vim基本命令表 1 工具准 ...

  4. Windows Sublime Text 配置Linux子系统(WSL)下的 gcc/g++ 编译环境

    0. 简介(若已了解背景可以跳过此部分) Windows 10 Build 14316以上版本中加入了"Windows系统的Linux子系统"(Windows Subsystem ...

  5. Kafka 安装配置 windows 下

    Kafka 安装配置 windows 下 标签(空格分隔): Kafka Kafka 内核部分需要安装jdk, zookeeper. 安装JDK 安装JDK就不需要讲解了,安装完配置下JAVA_HOM ...

  6. Windows 下 MySql 5.7.20安装及data和my.ini文件的配置(转)

    Windows 下 MySql 5.7.20安装及data和my.ini文件的配置     本文通过图文并茂的形式给大家介绍了MySql 5.7.20安装及data和my.ini文件的配置方法. my ...

  7. 配置 Windows 下的 nodejs C++ 模块编译环境 安装 node-gyp

    配置 Windows 下的 nodejs C++ 模块编译环境 根据 node-gyp 指示的 Windows 编译环境说明, 简单一句话就是 "Python + VC++ 编译环境&quo ...

  8. 在Mac OSX下使用ssh建立隧道(在Windows下建立隧道可以使用putty,其间会用到ppk文件)

    在Windows下建立隧道可以使用putty,其间会用到ppk文件.在Mac OSX下,同样的功能可以用ssh命令实现.具体是: ssh -D 8088 -Nf user@ip -i myppk.ss ...

  9. 【转载】在Linux中使用VS Code编译调试C++项目

    原文:在Linux中使用VS Code编译调试C++项目 最近项目需求,需要在Linux下开发C++相关项目,经过一番摸索,简单总结了一下如何通过VS Code进行编译调试的一些注意事项. 关于VS ...

随机推荐

  1. JDBC编程 之 增删改查

    JDBC编程之数据增加,更改,查询,删除 package com.good.jdbc; import java.sql.Connection; import java.sql.DriverManage ...

  2. UVa 106 - Fermat vs Pythagoras(数论题目)

    题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...

  3. android 进程/线程管理(四)续----消息机制的思考(自定义消息机制)

    继续分析handler 和looper 先看看handler的 public void dispatchMessage(Message msg) { if (msg.callback != null) ...

  4. 给你的Mr.Right画张择偶地图像

    爱一个人就算做不到爱他的全部,至少也应该尊重他的真实,而不是苛求他变成你想要的样子. 娶妻当娶郭芙蓉,经典语录.我是郭芙蓉,我不会武功,我来自江湖,我与众不同.再苦再累,就当自己是二百五,再难再险,就 ...

  5. 优秀的PHP开源项目集合

    包管理Package Management Package Management Related 框架 框架组件 微框架Micro Frameworks 内容管理系统Content Managemen ...

  6. Effective Java 41 Use overloading judiciously

    The choice of which overloading to invoke is made at compile time. // Broken! - What does this progr ...

  7. C# List与DataTable的相互转化

    List与Data的转化比较简单,网上也很多.但是大多都有一个Bug:当实体类有可空类型的属性时,转化会出异常(DATASET不支持System.Nullable异常) 下面的方法可以避免出现这个问题 ...

  8. 斐波那契数列 递归 尾递归 递推 C++实现

    ==================================声明================================== 本文原创,转载请注明作者和出处,并保证文章的完整性(包括本 ...

  9. 读书笔记——数据库的ADO开发总结

    基本上是对 ADO+开发指南.pdf 的摘抄和总结,以及个人心得. 文章末尾有<ADO+开发指南.pdf>的资源下载,附带个人批注. --------------------------- ...

  10. EXECL文件导入数据库

    Execl数据导入数据库: 注意事项:execl中的列名与列数要与数据库的列名和列数一致.值类型一致,列名不一致的话可在导入的时候,给字段起别名,确定保持一致 v 界面代码: <div> ...