Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 编译C/C++;在Windows 10(MinGW)中使用gVim 8.1_C++_Vim_Windows 10 - Fatal编程技术网

C++ 编译C/C++;在Windows 10(MinGW)中使用gVim 8.1

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

由于所有内容都是32位的,所以我使用了
: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.