作者回复: 看我的 Vim 配置,我用到的这些和 C++ 开发有关:
clang_complete
nerdcommenter(注释)
vim-fugitive(git)
vim-gitgutter(git)
code_complete
echofunc
另外,我在 .vimrc 里加了下面几句来集成 clang-format:
" Key mappings to use clang-format
noremap <silent> <Tab> :pyxf /usr/local/opt/llvm/share/clang/clang-format.py<CR>
inoremap <silent> <C-F> <ESC>:pyxf /usr/local/opt/llvm/share/clang/clang-format.py<CR>i
作者回复: 你可以对照下面链接看一下,你需要的 C++ 功能在 ICC 里是不是支持了:
https://en.cppreference.com/w/cpp/compiler_support
初看之下,似乎问题不大。但性能问题,还是需要实测的。
如果发现有问题(性能或功能),混合编译器也是可以考虑的,虽然管理上会复杂点。可以考虑把需要 ICC 编译的东西放单独的项目,编译成库,供其他项目使用。
作者回复: clang 本来就是为这方面做了很多优化的……但产生优化的二进制文件,似乎 gcc 仍然要强些。
可以考虑并发编译。首先是 make 本身的 -j 参数。其次网上你能找到工具做多机并发编译的。
作者回复: 具体什么错误?在命令行上直接运行有问题吗?
这些选项我从 Clang 3.x 开始用的,现在是 Clang 9,不应该有兼容性问题的……
作者回复: Bazel?那你只能找Bazel和JetBrains的人解决这个兼容性问题了,我可没办法。😅
或者改用CMake?我看了下Bazel的介绍,没觉得它比CMake好。特别是,CMake有不少特别的对C++的支持,包括对不同的编译器、Boost的库链接选项、C++标准,等等。
作者回复: 名气是挺响了。我没有使用经验……
作者回复: 挺好。这确实是最常见的几种用法。
作者回复: 嗯,这个是最近发现的,赶忙补进工具篇。
作者回复: 工具很重要。😎