【问题标题】:How to compile from gVim on Windows with GCC from Cygwin and then run the program?如何使用 Cygwin 的 GCC 在 Windows 上从 gVim 编译然后运行程序?
【发布时间】:2010-09-18 20:17:27
【问题描述】:

我整个早上都在工作,但我仍然找不到一种方法来轻松地绑定一个密钥,以便使用 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。

提前感谢所有帮助。

【问题讨论】:

    标签: vim gcc cygwin compilation


    【解决方案1】:

    检查这个plugin

    这似乎是你想要的。 不过我还没有测试过。

    【讨论】:

    • 不再维护。从那以后,我选择了另一个解决方案,它允许使用任何 cygwinish 程序(gcc、doxygen、latex 等)进行编译,并且仍然将生成的路径名转换为 vim32-(g)vim 可以理解的内容 -> code.google.com/p/lh-vim/source/browse/#svn/BTW/trunk
    • 是的,我试过那个插件,但它不起作用。我也不知道错误是什么,所以我放弃了那个方法。
    【解决方案2】:

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

    :update
    :make
    

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

    有了它,在玩 :make 之前,只需执行一次 :BTW add cygwin,甚至是 BTW 定义的 :Make。这个新命令将在使用自动确定的目标调用 :make 之前执行 :update!。注意:顺便说一句,将Make 和当前项目可执行文件的执行映射到&lt;F7&gt;&lt;C-F5&gt;

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

    【讨论】:

      【解决方案3】:

      基本上,当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"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-28
        • 1970-01-01
        • 1970-01-01
        • 2011-09-22
        • 1970-01-01
        相关资源
        最近更新 更多