我想编译没有关闭vi的cpp文件。
我知道:G ++ file.cpp但我更喜欢:让,所以我说在.vimrc文件
直接从vim编译
AU文件类型账套makeprg = gcc的\%
AU文件类型的cpp该线设置makeprg = G ++ \%
,但我不断收到
“使:*****没有指定目标,并没有发现makefile文件停止**。” 消息。
任何人都可以告诉我我的设置有什么问题吗?
我用上面的选项成功编译。
我想编译没有关闭vi的cpp文件。
我知道:G ++ file.cpp但我更喜欢:让,所以我说在.vimrc文件
直接从vim编译
AU文件类型账套makeprg = gcc的\%
AU文件类型的cpp该线设置makeprg = G ++ \%
,但我不断收到
“使:*****没有指定目标,并没有发现makefile文件停止**。” 消息。
任何人都可以告诉我我的设置有什么问题吗?
我用上面的选项成功编译。
我应该改变C,Cpp分成c,cpp,那么它工作正常。
谢谢大家,特别是Rob Wells,你的回答帮了我很多。谢谢。
我觉得如果你编写一个Makefile并把它放在vi可以找到的地方就容易多了。我不确定你是否真的使用vi(我只使用过Vim),但是当有Makefile编译时,应该像编写:make(不需要set makeprg)一样简单。
谢谢你的回答。但是我使用编辑器来处理项目euler问题等非常小的项目。所以每次我写代码,都会让Makefile变得很刺激。这就是为什么我试图使用:make(直接编译)。 – 2009-02-12 10:29:17
您需要替换在那里,你可以试试:
set makeprg=gmake\ %:r.o
哦,这是假定你已经有了:
检查f或默认输入:
make -n <my_file>.o
看看是否给你一些合理的。
如果在其他位置生成文件,你可以添加-f选项在Makefile点,例如:
set makeprg=gmake\ -f\ ../some_other_dir/makefile\ %:r.o
BTW对于学习化妆,尤其是GMAKE,我建议有看看这本优秀的书“使用GNU Make管理项目”(sanitised Amazon link)。
HTH。
欢呼声
首先,只是让血腥的make文件。那里的每一个工具都希望能够使用make,如果你的编译很简单,那么编写一个将所有c和cpp文件编译成可执行文件的make文件需要大约30秒的时间。
其次,如果你拒绝使用make文件,然后尝试
:help system
这应该给你足够的信息来拿出自己的命令与此类似
:com Mymake call system("g++ ".expand("%"))
我推荐了一个名为SingleCompile,而不是你做了什么VIM插件: http://www.vim.org/scripts/script.php?script_id=3115
它可以通过使用关键地图可以轻松实现。
首先打开你的vimrc文件以及这些行的文件,
autocmd filetype cpp nnoremap <F4> :!g++ % -ggdb -o %:r <CR>
autocmd filetype cpp nnoremap<F5> :!g++ % -ggdb -o %:r && ./%:r <CR>
第一行映射的关键F4以编译文件。第二行将键F5映射到编译并运行。
如果您经常使用gdb,那么这也可能会得心应手。
autocmd filetype cpp nnoremap<F10> :!g++ % -ggdb -o %:r && gdb -tui %:r <CR>
此行的关键F10映射到编译并启动gdb
希望这有助于。
在当前目录中搜索名为Makefile的文件。可能是这个问题?我自己是一个makefile-newbie,所以这只是一个猜测。 – Srikanth 2009-02-12 10:25:58
我不知道什么“au FileType CPP set makeprg” 的内部动作,但我从另一个服务器编译w/o Makefile。我不明白为什么我不能在我自己的电脑中编译 我使用的是Ubuntu 8.10 – 2009-02-12 10:31:09
我从来没有听说过:关于vi的make。这是对vim的改进吗? – mouviciel 2009-02-12 10:34:06