我使用的是Vim的YouCompleteMe C语义补全器,它安装有--clang补全器标志。它抱怨找不到Eigen/Core库文件中使用的"omp.h"文件。错误消息如下:
In included file: 'omp.h' file not found /usr/include/eigen3/Eigen/Core:247:10: note: error occurred here [pp_file_not_found]
代码编译和运行都很完美,所以我知道这不是真正的问题,YouCompleteMe也有问题。我试过同时使用clang和clangd,没关系,同样的问题。
如果我只是从compile_command.json文件中删除-fopenmp
,它就解决了这个问题。
提前谢谢。
llvm.org中预构建的clangs不包括openmp。YCM包含预构建的llvm.org包中clang资源目录的副本,因此找不到"omp.h"(它是资源目录的一部分(。
如果您需要使用openmp,那么我建议您将g:ycm_clangd_binary_path
设置为指向一个clangd,该clangd安装在包含openmp的llvm工具链旁边。