2010-09-18 41 views
1

我一直在这一整个上午工作,我仍然无法找到一种方法来轻松绑定一个密钥,使用Cygwin GCC从Windows版本的gVim编译我的程序,然后运行它。我对Bash脚本编程有点新手,并且我一直无法在主目录(C:/ cygwin/home)中创建.exe文件,然后运行它。如何使用Cygwin的GCC从Windows上的gVim进行编译,然后运行该程序?

我有什么至今:

map <F4> :call CompileRunGcc()<CR> 
func! CompileRunGcc() 
    exec "w" 
    exec "!gcc /home/%:t && cd C:/cygwin/home && ./a.exe" 
endfun 

这样的工作都很好,只是当我去到主目录中,a.exe的是不存在的。使用cygwin中的bash脚本.bat中的gcc编译工作正常......但不是来自gVim。

感谢您提前提供所有帮助。

回答

2

检查这个plugin

它似乎是你想要的。 虽然我还没有测试过。

+0

它不再被维护。从那以后,我选择了另一种解决方案,允许使用任何cygwinish程序(gcc,doxygen,latex等)进行编译,并将生成的路径名转换为vim32-(g)vim将理解的内容 - > http:// code.google.com/p/lh-vim/source/browse/#svn/BTW/trunk – 2010-09-20 12:19:36

+0

是的,我试过这个插件,它没有工作。我不知道错误是什么,所以我放弃了这个方法。 – 2010-09-22 21:23:50

0

基本上,当gcc运行时,它会在工作目录中产生二进制右键。如果要将输出二进制文件放在其他目录中,则必须通过-o选项。所以命令应该是以下任一种:

exec "!gcc -o C:/cygwin/home/a.exe /home/%:t && cd C:/cygwin/home && ./a.exe" 
exec "!cd C:/cygwin/home && gcc /home/%:t && ./a.exe" 
1

对于单文件项目,您不需要任何makefile。因此,只要gcc和make在你的$ PATH,你是在当前源文件所来自的目录,你“只”需要键入:

:update 
:make 

如果你的程序有没有错误,一个简单的!./%<会做。 否则,您可能必须执行:copen才能看到编译错误。如果你有,你会注意到一些* nix格式的路径名。不幸的是(g)vim-win32无法理解它们。那是我的旧cygwin编译器插件skeept告诉你的地方。为了支持任何编译类程序(而不仅仅是make),它演变为BuildToolsWrapper - 它的安装需要lh-vim-lib,并且可能是我的一些其他插件(system_tools,searchinruntime)。

有了它,只需做一次:BTW add cygwin,然后再玩:make,甚至是BTW定义的:Make。在用自动确定的目标调用:make之前,该新命令将执行:update!。注意:BTW地图Make和当前项目可执行文件的执行时间为<F7><C-F5>。 PS:如果您的项目中有多个文件,请定义一个Makefile,然后使用:make即可。 PPS:您也可能对cyg-wrapper.sh感兴趣,它有助于从cygwin shell正确打开gvim-win32。

相关问题