SpaceVim中neomake報錯 Error while trying to load a compilation database
阿新 • • 發佈:2018-07-19
inux cpp turn 沒有 spa without json data mpi
回家裝上archlinux,突發奇想裝個SpaceVim寫題
安裝配置一路可以說是沒有太大問題
最後在寫題時出現如下問題
Error while trying to load a compilation database: Could not auto-detect compilation database for file "poj-1458.cpp" No compilation database found in /home/tanglizi/Code/acm/summerTraining/2018 or any parent directory fixed-compilation-database: Error while opening fixed database: No such file or directory json-compilation-database: Error while opening JSON database: No such file or directory Running without flags.
查了查google,發現這是clang-check的問題,clang-check需要一個compile_commands.json文件(可由cmake生成)做到工程化check
那麽問題迎刃而解
方法一
卸載clang,換上gcc
絕對暴力的方法,可以說很不優雅了
方法二
手寫compile_commands.json文件,或者cmake一個工程
但是對ACM刷題黨來講,這個實在不方便
方法三
瞬間拋棄了前兩個方法,於是開始修改vim插件
還是查了查google,發現問題在於一個名叫neomake插件
於是查找有關clang-check的文件,看看是怎麽調用clang-check的
grep clang-check -R ~/.cache/vimfiles/repos/github.com # /home/tanglizi/.cache/vimfiles/repos/github.com/neomake/neomake/autoload/neomake/makers/ft/c.vim: " ‘exe‘: ‘clang-check‘ vim /home/tanglizi/.cache/vimfiles/repos/github.com/neomake/neomake/autoload/neomake/makers/ft/c.vim
可以看到第32行出現clang-check
function! neomake#makers#ft#c#clangcheck() abort return { \ ‘exe‘: ‘clang-check‘, \ ‘args‘: [‘%:p‘], \ ‘errorformat‘: \ ‘%-G%f:%s:,‘ . \ ‘%f:%l:%c: %trror: %m,‘ . \ ‘%f:%l:%c: %tarning: %m,‘ . \ ‘%I%f:%l:%c: note: %m,‘ . \ ‘%f:%l:%c: %m,‘. \ ‘%f:%l: %trror: %m,‘. \ ‘%f:%l: %tarning: %m,‘. \ ‘%I%f:%l: note: %m,‘. \ ‘%f:%l: %m‘, \ } endfunction
於是在33行的args裏面加上‘--‘,同理處理clang-tidy(75行),就搞定了
\ ‘args‘: [‘%:p‘, ‘--‘],
思路是在原命令後加上‘--‘,clang就不查找compilation database了
clang-check file.cpp --
SpaceVim中neomake報錯 Error while trying to load a compilation database