g++致命错误,没有这个文件或目录。

问题描述 投票:0回答:1

所以我使用的是 gvim编辑器 用C++编程,但是当我打开一个 .cpp 文件,然后在编辑器上输入 :!g++ -std=C++17 file.cpp -o file 我得到这个错误:请看下面的附件。

C:\Windows\system32\cmd.exe /c(g++ -std=c++17 file.cpp - o file)
g++: error: file.cpp: No such file or directory
g++: fatal error: no input files
compilation terminated

这是和vim有关,还是和我的命令有关?

先谢谢你了。

vim g++
1个回答
1
投票

看来你很不幸地使用了没有正确配置gnumake的gcc-mingw(:let $CXXFLAGS='-std=c++17 -Wall -Werror'+ make %< 否则就够了)。) 因此你要手动做一些事情。而且不要把参数拼错到g++。并且忘记 :!{compilername},这是我们25年前用vi必须要做的。与vi不同,vim允许集成编译。

" to do once
:let &makeprg='g++ -std=c++17 -Wall -Werror % -o %<'

" to execute each time to compile
:make
:copen

" to navigate the errors
:cc      " jump to error under cursor
:cnext   " jump to next error
:cprev   " jump to previous error
:cclose  " close the quickfix window

-> :h quickfix

这不应该在错误的目录下执行g++. 如果还是这样,请运行 :cd %:h.

执行应与 :./%.

如果你希望有热键,...

nnoremap <silent> <F7>   :<c-u>update<cr>:make<cr>
nnoremap <silent> <C-F5> :<c-u>./%<cr>

nnoremap <silent> <F3>   :<c-u>cnext<cr>
nnoremap <silent> <S-F3> :<c-u>cprev<cr>

只有在有错误时才自动打开快速修复窗口,或者只有在没有错误时才执行结果,这需要一个 多劳多得.

© www.soinside.com 2019 - 2024. All rights reserved.