c++ 将Conan Include链接到VS代码

tnkciper  于 2023-02-01  发布在  其他
关注(0)|答案(7)|浏览(272)

我目前正在一个C++项目上使用柯南,使用sqlite_orm作为依赖项。
当使用我的个人包含(如myClass.hpp)Visual Studio代码能够提供自动完成,但与柯南的包含,没有自动完成是可能的。
我正在寻找一种方法来链接柯南的包含路径到我的VSCode,你知道吗?

dm7nw8vv

dm7nw8vv1#

在项目的.vscode/c_cpp_properties.json文件中添加以下行
"includePath": ["${workspaceFolder}/**", "~/.conan/data/**"]

cygmwpex

cygmwpex2#

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)添加到您的CMakeLists.txt(或添加到cmake:cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..),因此将产生build/compile_commands.json
VS代码(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
}
b5buobof

b5buobof3#

Conan还没有为vscode提供扩展,但是你可以尝试一下:
https://github.com/FIREFOXCYBER/conan-tools-vs-code
在市场上有售。
否则,您可以在设置中手动添加软件包文件夹路径(例如~/.conan/data/package/version/package/package_id/include)。

toiithl6

toiithl64#

在VSCode的设置中搜索之后,我发现您可以更改包含在c_cpp_properties.json文件中的路径,该文件可以在您的.vscode文件夹中找到
通过在includePath字段中添加所需路径,可以选择自己的包含路径

cygmwpex

cygmwpex5#

我想补充的是,您也可以使用.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/**"
  ],
}
wfauudbj

wfauudbj6#

最近我也陷入了类似的困境,那些红色的曲线让人抓狂,社区扩展提供了一个很好的按钮来运行“conan install”和“conan build”,但是它不能帮助链接intellisense。
VS的default C++ plugin代码的智能感知从${PROJECT_ROOT}/.vscode/c_cpp_properties.json中获取搜索头文件的路径列表,而Conan将其包头文件分散在home/user目录下的不同文件夹中。
我最后只写了一个python脚本,每次运行“conan install”时,都会将标题位置从www.example.com中的元数据复制conanfile.py到c_cpp_properties. json。
我试着把PyPI上的可重用位捆绑在一起:https://pypi.org/project/parktoma-vscconan/1.0.1/
但这对我来说真的是权宜之计。IMO,正确的做法是让社区扩展执行相同的步骤,所有这些步骤都很好地集成到IDE中。但这现在起作用了,希望能有所帮助。

qco9c6ql

qco9c6ql7#

dvorak4tzxspanishgum的答案的组合,再加上VS Code的Customizing default settings选项,得到以下选项:
通过添加到CMakeLists.txt生成build/compile_commands.json eiter:

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

或在命令行中:

cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON

然后插入.vscode/settings.json

"C_Cpp.default.compileCommands": "${workspaceFolder}/build/compile_commands.json",

注意:我遇到了麻烦,如果

"configurationProvider": "ms-vscode.cmake-tools"

c_cpp_properties.json的一部分。如果没有它,IntelliSense将按预期工作。
我认为"includePath": ["${workspaceFolder}/**", "~/.conan/data/**"]并不是理想的,因为在~/.conan/data之下,每个库可能有许多版本。
资料来源:

相关问题