我一直在使用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的更多信息:
另外,看到这个问题: 直接从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插件来这样做。
它假定你正在使用g ++编译器。 如果没有,只需将名称更改为您正在使用的编译器。 将这个文件保存到vim / ftplugin / cpp.vim所在的位置
为了编译和运行当前打开的程序,只需在非编辑模式下输入shift-e即可。