CLion教程-管理包依赖
为了帮助您管理项目的依赖和外部库,CLion与vcpkg集成在一起,vcpkg是一个用于C/C++的包管理器。
当前的限制:
- 完整的vcpkg功能对CMake项目是可用的。对于其他项目格式,只支持浏览和安装包。
- 支持的工具链为除Windows Cygwin、WSL、Docker和Remote之外的所有工具链。
可以在CLion跟踪器中的相应票证上查看已知问题。
安装vcpkg
vcpkg将会安装到您的系统中。您可以安装多个vcpkg实例,每个实例都有不同的包集合。
此外,您可以将多个项目链接到一个vcpkg仓库。
- 从主菜单中选择 View | Tool Windows | Vcpkg,以打开 Vcpkg 工具窗口。
- 点击 :
在添加vcpkg对话框中指定安装设置:
- 您的vcpkg仓库的名称和URL。
- 安装目录(或使用默认值)。如果您已经安装了vcpkg,请在此字段中提供其位置的路径。
- 将vcpkg集成添加到现有的CMake配置文件中
CLion使用CMake工具链文件与vcpkg集成。选择您希望将工具链文件链接到的CMake配置文件。
安装完成后,您可以在所选配置文件的CMake选项中找到添加的工具链文件,该选项通过
CMAKE_TOOLCHAIN_FILE
变量进行设置。点击"确定"并等待安装完成。
- 包列表将出现在中间面板中。在右侧面板中,您可以找到所选包的描述和操作。
- 包列表将出现在中间面板中。在右侧面板中,您可以找到所选包的描述和操作。
如果vcpkg没有链接到任何配置文件,您会看到它被置灰。使用"编辑vcpkg"对话框()将其链接到配置文件。
浏览和安装包
尚未实现选择特定版本的选项(CPP-32366)。只能安装最新版本的包。
- 要查找特定的包,请在搜索字段中开始键入其名称:
- 选择包,然后按Enter键或单击右侧面板中的"安装"。
- 在经典模式下,如果成功安装了包,CLion将提示您将其添加到 vcpkg.json 并切换到清单模式:
- 您可以在 "已安装" | 经典模式或 "已添加" | 清单模式下找到已安装的包。
经典模式显示仓库中的所有包,而清单模式显示添加到 vcpkg.json 中的包。
- 经典模式
- 清单模式
切换到清单模式
如果项目根目录下有 vcpkg.json 文件,CLion将自动切换到清单模式。
请注意,经典模式和清单模式是互斥的。
- 点击"切换到清单模式"按钮:
- 选择要添加到 vcpkg.json 中的包:
- CLion将创建一个 vcpkg.json 文件,添加包并将项目切换到清单模式:
检查控制台输出
控制台:vcpkg 是一个只读标签,显示所有 vcpkg 命令及其完整输出。
使用上箭头和下箭头在命令之间跳转:
- 当发生错误时,例如在安装包时,CLion会显示一个通知消息。点击"显示输出"以打开控制台标签并查看问题。
- 您可以随时在使用vcpkg时切换到控制台标签。通过"显示控制台"按钮,也可以访问此标签。
安装/移除多个包
- 在树中选择多个包。
使用以下快捷键:
- 要安装或添加到 vcpkg.json,按Enter键。
- 要移除,按Alt+Delete / ⌘⌫。
开始使用包
包应该添加到 CMakeLists.txt 中。对于大多数包,vcpkg提供了应包含在CMake脚本中的代码。
- 如果vcpkg有提示,您会在通知中看到"添加包到 CMakeLists.txt"选项:
- 将建议的代码复制到您的 CMakeLists.txt 文件中。如果需要,将目标链接名称(默认为
main
)更改为您希望包链接到的名称。
更新vcpkg和包
对于更新和升级,使用以下工具窗口操作:
- "更新所有" 更新vcpkg Git仓库到最新版本,然后检查是否有可用的包更新。
- "升级所有" 更新vcpkg Git仓库到最新版本,然后将所有已安装的包更新到其最新版本。
- "检查更新"(菜单)检查vcpkg Git仓库是否有更新的版本。
- "更新仓库"(菜单)检查当前版本的vcpkg Git仓库是否有可用的包更新。
- "升级仓库"(菜单)检查当前版本的vcpkg Git仓库是否有可用的包更新,并将其安装。
- "更新vcpkg仓库"(菜单)将vcpkg Git仓库更新到最新版本。
自动更新仓库
- 在工具栏上点击 ,然后选择"重启IDE时自动更新仓库"选项,允许CLion在每次IDE重启时检查仓库更新。
使用快速修复添加缺失的包
如果在编辑器中包含了尚未安装的包的头文件,编译将因文件未找到错误而失败。在错误消息旁边点击"修复":
- CLion将建议安装缺失的包:
- CLion将建议安装缺失的包:
如果有多个候选项可供安装,可以从"修复"菜单中打开列表:
- 在对话框中选择要安装的包:
- 在对话框中选择要安装的包:
对于未链接到包管理器的配置文件,修复也是适用的。
强制使用系统的CMake和Ninja
您可以通过配置文件环境来强制vcpkg使用来自系统的CMake和Ninja。
- 点击左侧面板上的"编辑vcpkg"按钮:
- 展开高级设置部分,并设置"使用系统二进制文件"复选框:
已知问题和限制
- 目前,vcpkg支持不适用于以下工具链:Cygwin(CPP-31665),Remote(CPP-30683),Docker(CPP-30684)和WSL(CPP-30685)。
- 编辑器中用于缺失包的快速修复正在开发中(CPP-31662)。
在CLion中,您还可以使用Conan,这是一个通过第三方Conan插件(由JFRog维护)来使用的包管理器。目前该插件没有在积极开发中。