试图从Vim编译和debuggingC ++

我一直在使用Windows XP上的Code :: Blocks学习C ++和Allegro,最近感觉像学习Vim。 但是,我不知道如何“手动”编译程序(即不使用IDE)。

从Vim内部编译,我已经把makeprg设置为gcc,但是我知道我也需要一个makefile。 那是什么,如何写一个? 使用makefile可以使用Allegro等库吗?

另外,我非常喜欢CBdebugging器(我正在使用gdb)。 Vim有可能做类似的事吗?

谢谢。

看看MinGW 。 如果你只需要gcc和make,我会避免Cygwin。 你会同时需要MinGW和MSYS。 MSYS有一个窗口的make。

如果您对Windows命令行有更多的unix实用程序感兴趣,我推荐使用CoreUtils 。

为了学习,请参阅手册

你不一定需要一个Makefile,但它是在类UNIX系统上编译代码的首选(也可能是最简单的)方法。

我不知道GNU Make是否有Windows端口,但你可以在Cygwin下运行它。

要了解有关GNU Make和Makefiles的更多信息:

  • make (维基百科)
  • GNU Make
  • GNU Make手册

另外,看到这个问题: 直接从vim编译

强制编辑:我不使用Windows或Cygwin。 你可能想要在那个部门接受epochwolf的建议 。

我不是在makefiles和调试专家,但我知道,Vim让你做很多事情。 例如,如果你想用gcc编译一个文件,它和通常的方式没什么两样。 在正常模式下输入:

:!gcc file.c -o file 

实际上,只要添加“!”就可以使用(几乎)每个系统命令。 在你的命令前面。 gdb也适用于Vim

 :!gdb 

我希望这会帮助你。

要将vim与devenv集成,可以使用Visual Studio中的devenv来编译vim中的项目。 命令如下:

 Devenv SolutionName /build SolnConfigName [/project ProjName [/projectconfig ProjConfigName]] 

典型地,devenv应该位于C:\ Program Files \ Microsoft Visual Studio 8 \ Common7 \ IDE中。 将其设置为环境的路径,以使其可从vim调用。 我们还需要让vim识别命令行构建工具devenv抛出的错误信息。 只需在你的vimrc中放入以下代码:

 " Quickfix mode: command line devenv error format au FileType cpp set makeprg=devenv.com\ /Build\ Debug\ *[SolutionName]* au FileType cpp set errorformat=\ %#%f(%l)\ :\ %#%t%[Az]%#\ %m 

然后你可以使用:make从vim编译和编译程序。

编辑1:你可能会发现有用的几个书签:

GNU make教程 (这个使用gcc和make,所以应该放在你的胡同里)

另一个

一些GNU utils的Win端口可以提到; 我个人使用这些,在Windows平台上没有任何问题。


是的,你可以在没有makefile的情况下编译。 如果你的程序很简单(例如,只有一个文件),你可以通过调用编译器并在同一行中包含程序的名称进行编译(不要记得gcc是如何运行的)。 当然,为了使事情变得简单,可以把它映射到vim中的一个键,所以你不必跳转到命令提示符并返回。

如果你正在做一个更大的项目,其中包括几个文件等,比makefile文件是有用的。 它将通过文件“搜索”,确定依赖关系,将它们包含在构建中,也许将源文件放在一个目录中,并将生成的exe文件放在另一个目录中。 所以它不仅仅是编译,更像是一个链接和构建系统。 虽然Can Berk Guder的答案中提到的GNU make是一个非常流行的,但还有不少其他的“构建makefile”(“makefile”已经成为这类操作的同义词) – 在这里,您可以看到这个链接上的一些其他选项。 由于vim在历史上的一部分,对于make有很好的支持,但其他人也可以很容易地使用(在VimWikia上有很多这方面的文章 。

那么,就是这样。 只是我的0,2欧元:)

只要你安装了GNU-make(在Windows下有cygwin或mingw),你不需要为单个文件项目编写makefile。 刚刚运行:make从VIM :make ,这就够了。

如果你的项目是由多个文件组成的,那么你将不得不编写一个makefile(或者scons,aap,(b)jam,ant,等等),然后调整你的&makeprg ,最后调用:make VIM。 请参阅vimtips中的相关类别。 您当然可以运行编译器,因为您可能已经运行了任何其他外部工具,但是您将失去跳转到错误行的可能性。

注意:如果你使用vim和gcc-cygwin的win32版本,你需要翻译获得的错误信息。 我曾经为这个目的维护一个perl脚本,它现在是一个更大的套件的一部分(仍处于测试阶段)

关于你的调试问题,暂时不能在windows下用vim完成。 目前唯一可以集成的调试器是gdb,但是仅在linux下; 请参阅pyclewn(.sf.net)项目。

我不清楚调试,但我知道一个简单的方法来编译和运行当前的程序,因为我写了一个小的vim插件来这样做。

http://pastebin.com/qc5Zp2P7

它假定你正在使用g ++编译器。 如果没有,只需将名称更改为您正在使用的编译器。 将这个文件保存到vim / ftplugin / cpp.vim所在的位置

为了编译和运行当前打开的程序,只需在非编辑模式下输入shift-e即可。