vim youcompleteme找不到cstdint

真实

我在尝试使用带有Unix风格Makefile的CMake和带有youcompleteme插件的vim(我是Linux老手和Mac新手)在Mac(Yosemite,Xcode 6)上设置C ++项目时遇到了问题。 Xcode)。代码会生成并运行,但是youcompleteme会引发一些伪造的错误,我认为这些错误归结为无法找到<cstdint>标头。

我也刚刚在Linux上尝试过,并且遇到了同样的问题。

我已经将.ycm_extra_conf.py配置为使用cake生成的compile_commands.json。compile_commands.json中的“ command”行使用以下标志:

  "command": "/usr/bin/c++     -std=c++11 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks -I/usr/local/include -I/Users/tony/Dev/cow/jni -I/Users/tony/Library/Frameworks/SDL2.framework/Headers    -Wall -Wextra -Wunused -F/Users/tony/Library/Frameworks  -o ...

似乎没有明确引用任何包含stdint作为直接父目录的目录。

有没有一种方法可以使youcompleteme用libclang进行处理,从而可以隐式找到目录,这在命令行上运行c ++时似乎可以正常工作?还是在不进行硬接线的情况下使cmake添加适当的系统头路径的最佳方法是什么?我希望我的CMakeLists.txt具有可移植性,并且能够应对工具链升级。

我的.ycm_extra_conf.py几乎是所提供示例的一个副本,对其进行了稍微修改,以找到放置它的compile_commands.json。

阿比加利

正如@ladislas所说,YCM需要明确指向所有相关的include目录,因为libclang不会使用普通编译器驱动程序调用(即命令行中的clang ++)将使用的相同隐式位置。

在OSX上,我通常要做的是让YCM知道Xcode的libc ++标头,例如(在.ycm_extra_conf.py中):

import os
import ycm_core
import subprocess
xcode_cpp11headers = subprocess.Popen("xcode-select -p", stdout = subprocess.PIPE, shell=True).communicate()[0].rstrip('\n') + '/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1'
.
.
flags = [
.
.
'-isystem',
xcode_cpp11headers,
.
.
]

根据当前Xcode的安装位置,使用正确的路径填充“ xcode_cpp11headers”变量,如果您要使用libc ++的命令行工具版本(即,包含在/ Library / Developer中),则可以相应地对其进行更改。 / CommandLineTools / usr / include / c ++ / v1)或libc ++的源发行版(如果已编译)。

当然,这取决于平台,您可以在项目旁边提供特定于平台的.ycm_extra_conf.py,也可以根据当前平台使用一些额外的python代码以不同的方式填充该变量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

vim YouCompleteMe。命令返回你来自哪里?

来自分类Dev

使vim的YouCompleteMe插件识别旺盛的标签

来自分类Dev

如何接受Vim YouCompleteMe插件的建议

来自分类Dev

vim似乎找不到.clang_complete

来自分类Dev

为特殊项目结构配置VIM YouCompleteMe

来自分类Dev

Vim:“ f”在找不到字符时破坏了我的映射

来自分类Dev

用YouCompleteMe完成VIM语义JavaScript?

来自分类Dev

vundle / YouCompleteme:需要Vim 7.3.584+

来自分类Dev

vim YouCompleteMe GoTo不起作用

来自分类Dev

E490:在vim的unix中找不到折叠

来自分类Dev

vim YouCompleteMe的Compilation_database_folder路径

来自分类Dev

jedi-vim是否与YouCompleteMe冲突?

来自分类Dev

Vim YouCompleteMe插件-不要下载clang

来自分类Dev

编译Vim时找不到终端库

来自分类Dev

Vim找不到语法.vim

来自分类Dev

使用neoclide / coc.nvim在VIM中找不到

来自分类Dev

Vim找不到语法.vim

来自分类Dev

编译vim时找不到tgetent()

来自分类Dev

编译Vim时找不到终端库

来自分类Dev

Vim-LatexSuite:/ bin / bash:找不到乳胶命令

来自分类Dev

如何使用vim-youcompleteme

来自分类Dev

来自终端的Vim可以找到包,GVim找不到

来自分类Dev

在Vim中按za时找不到折叠错误

来自分类Dev

Vim YouCompleteMe安装

来自分类Dev

找不到Vim映射模式

来自分类Dev

-bash:vim:找不到命令

来自分类Dev

GNU Octave:`sh:vim:找不到命令`

来自分类Dev

vim-clang-format:找不到clang-format

来自分类Dev

找不到 Vim 正则表达式替换模式