将 Conan Include 链接到 VS Code

Linking Conan Include to VS Code

我目前正在使用 sqlite_orm 作为依赖项的 C++ 项目上使用 Conan。

当使用我个人的包含时(例如 myClass.hpp)Visual Studio 代码能够提供自动完成,但使用 Conan 的包含时,无法自动完成。

我正在寻找一种方法 link 将柯南的包含路径添加到我的 VSCode,有什么想法吗?

Conan 还没有为 vscode 提供扩展,但您可以尝试:

https://github.com/FIREFOXCYBER/conan-tools-vs-code

市场上有售。

否则,您可以在设置中手动添加包文件夹路径(例如~/.conan/data/package/version/package/package_id/include)。

在 VSCode 的设置中搜索后,我发现您可以更改包含在 c_cpp_properties.json 文件中的路径,您可以在 .vscode 文件夹中找到该文件

includePath 字段中添加您想要的路径允许您选择自己的包含路径

我最近陷入了类似的困境。所有那些红色的波浪线都让人抓狂。该社区扩展为 运行 "conan install" 和 "conan build" 提供了一个很好的按钮,但它对 link 智能感知没有帮助。

default C++ plugin for VS code gets its list of paths to search for headers from ${PROJECT_ROOT}/.vscode/c_cpp_properties.json 的智能感知。不幸的是,Conan 将其包 headers 散布在您的 home/user 目录中的一堆不同文件夹中。

我最后只是写了一个 python 脚本,每次 "conan install" 是 运行,从 conanfile.py 中的元数据复制 header 个位置到c_cpp_properties.json。

我试图在这里捆绑 PyPI 上的可重用位: https://pypi.org/project/parktoma-vscconan/1.0.1/

但这对我来说确实是权宜之计。 IMO,正确的做法是让社区扩展执行相同的步骤,所有这些都很好地集成在 IDE 中。但这现在有效,希望它能有所帮助。

在项目的 .vscode/c_cpp_properties.json 文件中添加以下行

"includePath": ["${workspaceFolder}/**", "~/.conan/data/**"]

我想补充一点,您还可以使用 .vscode/settings.json 文件替代 .vscode/c_cpp_properties.json

例如,我刚刚建立了一个项目:

{
  "C_Cpp.clang_format_path": "/usr/lib/llvm-10/bin/clang-format",
  "C_Cpp.default.includePath": [
    "~/.conan/data/**"
  ],
}

set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 添加到您的 CMakeLists.txt(或添加到 cmake:cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..)以便生成 build/compile_commands.json

VS Code(clion 等)可以利用此文件支持自动完成:

$ cat .vscode/c_cpp_properties.json
{
    "configurations": [
    {
        "name": "Linux",
            "defines": [],
            "compilerPath": "/usr/bin/g++",
            "cStandard": "c11",
            "cppStandard": "c++14",
            "intelliSenseMode": "clang-x64",
            "compileCommands": "${workspaceFolder}/build/compile_commands.json"
    }
    ],
    "version": 4
}