c++ - 如何向 CMakeSettings.json 添加其他包含路径以使 IntelliSense 工作?
问题描述
我正在使用 Visual Studio 2019 16.7.2 打开一个 CMake 项目,该项目使用位于绝对C:\dependencies
路径内的头文件和库。但是,该路径从未在 CMakeLists.txt 中直接引用,并且仅在项目附带的单独构建脚本中使用并成功执行。这意味着在 VS 中处理项目时,IntelliSense 无法识别包含的标头C:\dependencies\lib[A,B,...]
,例如#include <libA/header.h>
,无法找到自动完成和类似功能的标头。
我不应该直接修改 CMakeLists.txt。相反,我想在未版本化的CMakeSettings.jsonC:\dependencies
文件中从基本路径引用标头,这有望解决 IntelliSense 问题。这是我尝试过的,但没有奏效:
- 添加一个
include_directories
变量:
"variables": [ { "name": "include_directories", "value": "C:/dependencies/libA/include C:/dependencies/libB/include" "type": "PATH" }]
- 添加一个 CMAKE_CXX_FLAGS 变量:
"variables": [ { "name": "CMAKE_CXX_FLAGS", "value": "-I C:/dependencies/libA/include C:/dependencies/libB/include" }]
路径字符串本身不是问题,例如"C:\dependencies\libA\include"
包含libA
带有引用标题的目录。
关于如何让 IntelliSense 成功识别标头的任何想法?
解决方案
推荐阅读
- async-await - Kendo UI 数据源 - beforeSend 与 async/await
- sql-server - 如何找出存储过程每次运行的时间
- amazon-web-services - AWS CloudFormation 堆栈:具有嵌套路径的 API Gateway 资源?
- docker - 如何协调 docker 容器之间的端口
- sql - 将 SQL 语句组合为列,而不是行
- google-sheets - 如何让谷歌表格(谷歌财经)显示最低股价在日期范围内的日期?
- spring-boot - spring-boot-maven-plugin spring-boot.run.main-class 被忽略(Groovy)
- javascript - 使本地文件保存一个可供任何用户使用的值
- ruby-on-rails - Ruby on Rails 中的多个日志文件和日志轮换
- ios - 无法安装分发版 Flutter 应用程序 .ipa(使用苹果配置器 2 甚至在 TestFlight 应用程序版本上都失败)