[C++]CLion集成vcpkg一键完成包管理——以使用imgui为例
这篇文章给出了一条在 CLion 中集成 vcpkg 并跑通 ImGui 示例的完整实践路径。CLion 中接入 vcpkg先通过 CLion 内置 vcpkg 模块完成下载或本地目录绑定。重点区分“URL 自动下载”与“Directory 指向已有安装”两种入口。完成后将 vcpkg 集成到现有 CMake 运行配置…
下载并集成vcpkg 首先,请确保 CLion 版本高于 2023.1。 按两下 shift 搜索 vcpkg ,并点击可进入 CLion 对 vcpkg 的支持模块。 如下图: img CLion对vcpkg的操作模块如下: img 上图中,由于我已经完成vcpkg的下载与集成,可以看到我已经安装的各种库。 如果你第一次来使用这个功能,那么可能需要点击左上角的四个按钮完成相应操作。 img 由于你目前还没有创建vcpkg的集成,所以需要先点击那个加号。 会出现下列选项: img 上述图片中已经注释的很清楚了。 主要需要配置的是两类: vcpkg的下载:如果你本地之前没有下载好vcpkg,那么可以填写url来帮你下载和初始化,但是需要注意,下载的文件夹需要是一个不存在的文件夹。如果你本地之前现在过vcpkg,你想要手动指定它,那么只需要在 Directory 中指定已经下载好的vcpkg的目录即可,而上述url将无效。 将vcpkg集成到cmake项目: 这里就比较简单了,点击集成到你目前CLion中已经存在的cmake运行的配置项即可。 有关CLion中cmake的运行配置项是什么,可以查看我B站的视频讲解:https://www.bilibili.com/video/BV18R4y127UV 完成这两步,你的vcpkg算是已经集成到了你的cmake项目。 其他三个按键,比如第二个编辑按键其实就是重新编辑每个集成的 vcpkg 的这几个参数罢了。引入第三方库 我们已经集成好了vcpkg,那么我们以一个较为复杂的第三方库引入来跑跑看? 就决定是你了 Imgui ! 我们直接到目前已经集成的vcpkg中搜索该库: img 如上图所示,我们有两种方式去编译安装该库:在项目根目录下提供 vcpkg.json 文件来描述需要依赖的库,在cmake执行后自动下载编译。手动选择需要编译的环境,然后手动点击install来进行安装。 这两种方式在编译安装好后都会提示你如何引入该库,如下图我已经编译安装好imgui了: img 你只需要把 main 替换为你的项目 target 即可完成库的引入。集成cmake运行项目 现在你的项目虽然引入了 imgui ,但是你会发现你还是无法把官方的例子跑起来,因为官方的例子还依赖图形渲染引擎(这方面我也不是很懂)。 这里有作者对不同渲染引擎的例子如何跑起来的描述:https://github.com/ocornut/imgui/blob/c206a193737811193a0b48ef2d35fe028fa0996e/examples/README.txt#L160 介于我本机使用的是win11系统,所以我选择跑的是 example_win32_directx12 这个例子,描述如下:example_win32_directx12/ DirectX12 example, Windows only. = main.cpp + imgui_impl_win32.cpp + imgui_impl_dx12.cpp This is quite long and tedious, because: DirectX12. 依照提示把 example 中的这三个 cpp 源文件以及对应头文件加入编译即可跑通该示例。 对应文件url如下: main.cpp:https://github.com/ocornut/imgui/blob/c206a193737811193a0b48ef2d35fe028fa0996e/examples/example_win32_directx12/main.cpp imgui_impl_win32.cpp:https://github.com/ocornut/imgui/blob/c206a193737811193a0b48ef2d35fe028fa0996e/examples/imgui_impl_win32.cpp imgui_impl_win32.h:https://github.com/ocornut/imgui/blob/c206a193737811193a0b48ef2d35fe028fa0996e/examples/imgui_impl_win32.h imgui_impl_dx12.cpp:https://github.com/ocornut/imgui/blob/c206a193737811193a0b48ef2d35fe028fa0996e/examples/imgui_impl_dx12.cpp imgui_impl_dx12.h:https://github.com/ocornut/imgui/blob/c206a193737811193a0b48ef2d35fe0…
正在初始化 WebAssembly 引擎…
首次编译原生模块可能需要数秒
就绪后,页面交互将以接近原生的速度运行