如何使用Cygwin的GCC从Windows上的gVim编译然后运行程序?

时间:2010-09-18 20:17:28

标签: vim gcc cygwin compilation

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

到目前为止我所拥有的:

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。

提前感谢您的所有帮助。

3 个答案:

答案 0 :(得分:2)

检查此plugin

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

答案 1 :(得分:1)

对于单文件项目,您不需要任何makefile。因此,只要gcc和make位于$ PATH中,并且您位于当前源文件所在的目录中,您只需键入:

:update
:make

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

有了它,在你玩:BTW add cygwin之前,只需做一次:make,甚至是BTW定义的:Make。在使用自动确定的目标调用:update!之前,此新命令将执行:make。注意:BTW将Make和当前项目可执行文件的执行映射到<F7><C-F5>

PS:如果您的项目中有多个文件,请定义一个Makefile,然后使用:make,这就是全部。 PPS:您可能对cyg-wrapper.sh感兴趣,这有助于从cygwin shell正确打开gvim-win32。

答案 2 :(得分: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"