vim - g++致命错误没有这样的文件或目录
问题描述
所以我使用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有关,还是与我的命令有关?
提前致谢。
解决方案
不幸的是,您似乎正在使用 gcc-mingw,它没有正确配置 gnumake (否则: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>
仅在出现错误时自动打开 quickfix 窗口或仅在没有错误时执行结果需要更多的工作。
推荐阅读
- xcode - 如何让用户快速登录
- dialogflow-es - Dialogflow - 从动态 URL 播放媒体响应 mp3 文件
- python - sympy : 检查并解析字符串中的表达式
- math - 两个函数的 Mathematica DSolve
- reactjs - 反应本机在新闻目标上获得“id”
- python - Python 多处理 - 如何使其更高效
- amazon-web-services - 从在 AWS 上运行的 Apache Nifi 访问 AWS 服务
- scala - 如果我将同步放在 isVisited 上,并行图遍历可以工作吗?
- mysql - 在第二个表MYSQL中按多行过滤数据
- google-apps-script - 谷歌电子表格自动时间戳:我在删除单元格内容时不想要时间戳