C++ 编译C/C++;在Windows 10(MinGW)中使用gVim 8.1
由于所有内容都是32位的,所以我使用了C++ 编译C/C++;在Windows 10(MinGW)中使用gVim 8.1,c++,vim,windows-10,C++,Vim,Windows 10,由于所有内容都是32位的,所以我使用了:set makeprg=mingw32 make,然后尝试通过编译:!make,它给出了以下错误消息: “make”不被识别为内部或外部命令、可操作程序或批处理文件 壳返回1 我尝试了一些基本的“再见世界”的东西: #包括 int main(){ std::cout:!make不运行'makeprg'。它运行make。由于您特别尝试运行mingw32 make.exe,因此您可能没有名为make.exe的可执行文件(请参阅:帮助:!) :make运行“ma
:set makeprg=mingw32 make
,然后尝试通过编译:!make
,它给出了以下错误消息:
“make”不被识别为内部或外部命令、可操作程序或批处理文件
壳返回1
我尝试了一些基本的“再见世界”的东西:
#包括
int main(){
std::cout:!make
不运行'makeprg'
。它运行make
。由于您特别尝试运行mingw32 make.exe
,因此您可能没有名为make.exe
的可执行文件(请参阅:帮助:!
)
:make
运行“makeprg”
(请参阅:帮助:make
,:帮助“makeprg”
)
我的目标是在控制台、终端或任何可观察的方式中查看“再见世界”。这是否需要对\u vimrc
文件进行额外的修补
您更希望通过修补makefile来完成此操作。:make
的任何参数都将传递给'makeprg'
。如果您定义了目标clean
(删除make工件)或run
(执行make产品),您将能够在Vim中编写:mak clean
或:mak run
,以运行这些目标。显然,您可以创建自己的命令和/或映射,使这些:make
命令更快。注意(我自己完全忽略了这一点,愚蠢的我)当你运行一个简单的代码,比如上面的代码,不需要大量的文件管理和MaFIX文件,你需要去的就是<代码>:GCC % C和<代码>:G++%%/COD> C++。我相信(我可能错了,但这只是一个简单的观察)。在VIM中,<>代码>:< /COD>指示以下命令在系统命令提示符中执行,并且 Gcc/G++< /C>是分别调用C和C++的GNU编译器的命令。最后,使用代码> %%/COD>来指示当前文件名,所有扩展名都完整。这对于KyMyPin的情况非常有用,正如我通过以下方式所做的:
nnoremap <F5> :!g++ %<CR>|"Press Func.5 to Compile via GNU Comp.
nnoremap:!g++%|”按Func.5键通过GNU Comp进行编译。
令人惊讶的是,即使是最简单的:!gcc%
也无法工作。您是否确保在本地环境变量路径中设置了MinGW/bin
目录?(您使用的是与code::Blocks一起安装的TDM MinGW?还是由MinGW安装程序安装的?)是的,在我的环境变量路径列表中有一个C:\MinGW\bin
目录。Vim没有翻译您的:set makeprg=mingw32 make
为make
设置别名(例如alias make=mingw32 make
)。如果您进行测试,您可以从cmd.exe
或powershell
终端调用mingw make
,对吗?不,不太对,只是:!goodbyeworld.exe
将运行它并为您保持终端打开状态。(就我个人而言,我只是使用一个简短的脚本来构建小项目,而不是使用Makefile
来实现选项处理的灵活性)对于单源代码构建,我只需在我的.vimrc
中添加map\g:gcc-Wall-Wextra-pedantic-Ofast-o%
,因此我只需点击ctrl+v、\g
即可将当前文件编译成其filename.exe
(您可以为g++/code>映射另一个键)我使用了:make
而不是:!make
,而且由于makeprg
已经被这样定义了,我得到了“goodbyeworld.cpp.无需做任何事情”的消息。但是,这也不是一个错误)制作一个Makefile或b)制作一个可执行文件。下一步我该怎么做?这意味着您的make运行正确。问题的其余部分在您的Makefile中,而不是Vim问题。我建议您提出一个新问题,发布Makefile的内容(因为没有它,我们无法知道问题是什么),并用和标记它(为了吸引熟悉这些技术的人)。但是通常,make
应该只编译可执行文件。而不是运行它(如上所述添加一个run
目标,这样你就可以在Vim中运行它了。嗯,我想我有很多关于这个神秘的“Makefile”的学习“东西,但至少Vim wise没有问题了,所以这应该是个好消息。感谢您的帮助!您对:!
的看法是正确的--您可以在中确认。对于编译单个文件,您应该尝试,它提供了与您在此处创建的文件类似的映射,但适用于不同的OSs和编程语言。
nnoremap <F5> :!g++ %<CR>|"Press Func.5 to Compile via GNU Comp.