DL-85
1
Mac Mojave平台,使用的是Spacemacs develop分支,emacs 26.1
不知道为啥没有补全头文件,只能提示#include<> 和#include" "不能提示具体头文件内容
ccls也会对string报错
尝试过brew install --HEAD ccls和自己编译的ccls都有同样问题
也尝试了FAQ · MaskRay/ccls Wiki · GitHub
.ccls文件内容:
%clang
-Wall
%c -std=gnu11
%cpp -std=c++17
%cpp -stdlib=libc++
不知道有没有遇到过相同问题的?
DL-85
3
我试了下,还是无法补全
重新生成了complie_commands.json
我的c++头文件目录比较奇怪 我找到位置是在/usr/local/opt/llvm/include/c++/v1
DL-85
7
嗯嗯 非常感谢 我发现/Library/Developer/CommandLineTools/usr里面也有c++头文件 我尝试一下
你解决了么。 我回我的mac上测试了一下。好像也不行。。。但是linux下可以
@MaskRay 麻烦大佬看一下
我也是一样的环境
Mac os10.14
brew install ccls
有进展吗 方法试了个遍。。好像还是不行 而且string还会报错
DL-85
10
没有 尝试了/Library下面的c++路径 但是还是无效 头文件无法补全 vector string都会报错
DL-85
11
我也是尝试了好多办法 在ccls下面的wiki和issue查了一天 还是没能解决,不知道有没有大佬能提供下解决方法
我Mac下跟你一模一样的情况。。只能等作者大佬出来解决一下了
(帖子被作者删除,如无标记将在 24 小时后自动删除)
DL-85
14
But maybe he know what’s wrong, or someone like @twlz0ne the author of homebrew-ccls may know more about ccls on osx.
a1406
15
我在linux下用的ccls,我这里补全头文件的时候,系统的头文件是可以补全的,但是项目的头文件就不行。我一直以为是ccls不支持补全项目的头文件的呀。
DL-85
16
项目头文件是自己定义的头文件么? 这个应该在CMakeList.txt或者.ccls中添加路径就可以补全吧? 但是我在osx上都没法补全
a1406
17
是的呀,我怀疑是不是我的compile_commands.json的问题,因为我在compile_commands.json里面找不到头文件的项,所以我打开头文件的时候也会有这样的报错。
Couldn’t find compile
command from ‘compile_commands.json’ in *****
我的compile_commands.json是cmake生成的。我试了一下自己手动在compile_commands.json里添加头文件信息,比如这样
{
"directory": "/home/jack/gitroot/gdy/server/proto",
"command": "",
"file": "/home/jack/gitroot/gdy/server/proto/db.pb-c.h"
},
那么我打开这个头文件就不会在报错了。
但是这个头文件依然不能够在#include "后面进行补全
a1406
20
我做了一个测试,CMakeFiles的内容是这样的
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
project(testproj)
add_executable (test test.cpp)
TARGET_INCLUDE_DIRECTORIES(
test
PRIVATE
“${PROJECT_SOURCE_DIR}/”
)
生成的compile_commands.json是这样的
[
{
“directory”: “/home/jack/source/test”,
“command”: “/usr/bin/c++ -I/home/jack/source/test -o CMakeFiles/test.dir/test.cpp.o -c /home/jack/source/test/test.cpp”,
“file”: “/home/jack/source/test/test.cpp”
}
]
但是在打开test.h的时候,依然提示
Couldn’t find compile
command from ‘compile_commands.json’ in /home/jack/source/test/.
补全头文件的时候也同样不会出现test.h
DL-85
23
我尝试了下cquery 目前体验 头文件补全正常 string vector也无报错
我昨天也下载了cquery 还没编译。。晚上回去再搞一下:joy: