上周一直在犯蠢,今天用`clang++ -MJ`生成了编译数据库,能工作了。

原本是关于windows下给cmake传递路径名的主题,现在改成抱怨贴。

这段时间在各种平台下配置写C++代码的环境,服务器上,自己笔记本,和一台win7的工作站。

先是服务器,本来服务器用的ycmd,用.py当项目配置文件,不过体验不是很好,flycheck是错的,开头报一个错,后面的错都报不出来,补全也补不出来。不过好歹能跳转到对应头文件(在另一个项目,用json索引的),跳转过去后提供的功能基本正常。

之前想写一个elisp脚本,需要读clang的json文件,由于以前用cquery-file-info写过,就把配置换成了cquery,然而cquery配置好了报一大堆错,理由是找不到头文件,不过cquery-file-info确实有头文件所在的路径。

不过我前几天得到了一台win7的工作站,就想着在工作站上写C++,于是就在工作站上装了MinGW,不过build cquery时有个thrid party报错了,于是把目光转向了irony。然后,我又尝试了一下那个存在include path在外部的项目,参数通过type nul | clang ... -E -v -都没问题,M-x irony-cdb-menu显示的命令行也是对的,不过表现和服务器上的cquery一样。。。

最后还是只有用自己笔记本(索引用的cquery),因为所有包全系统目录的,头文件找不到之类的问题不存在。。。不过也不是完美的,那个项目会在某些头文件报unknown typename 'namespace',不知道怎么回事。不过代码传到服务器上能build,本机就没试了,比较慢。

这种还挺好用的,适合我这种不用构建工具的奇葩。。。

我基本放弃折腾基于语义的补全/跳转了,完全依赖TAG系统……

主要是觉得TAG挺麻烦的,不像基于语义的,正常工作的话,写完(或生成完)配置文件就不用管了。。。

你这么一说我突然想起来了还有个rtags,不过短时间内干不动了,这一周基本就是各种折腾(不止配置了写C++的环境,还有别的),没干什么正事,该罚自己三个月不准折腾。。。

你的标题跟你的正文,到底想表达什么?

我的标题是正文第一句话,不过不给过。