一、现代C++开发常用工具链
CMake(配置项目)、Conan(依赖管理)、vcpkg(包管理)和MSVC(编译器)是现代C++开发中常用的工具。以下结合跨平台开发场景,介绍它们的集成方式、配置要点及常见问题解决方案。
1、**CMake作为构建系统的核心,** 它是跨平台的构建配置工具,推荐使用现代CMake(3.15+)的target-based写法以提升可维护性。在Windows上与MSVC编译器集成时,需通过工具链文件指定编译器,例如设置CMAKE_TOOLCHAIN_FILE为vcpkg的工具链文件($ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake)或使用CMake预设(CMakePresets.json)来管理平台特定配置。
2、**Conan作为跨平台依赖管理工具(类比前端工程的dependence),** 它通过conanfile.txt或conanfile.py声明依赖
3、**vcpkg作为Windows平台的包管理器(类比前端工程的npm),** 它通过工具链文件与CMake无缝集成,自动注入库搜索路径和目标定义。使用微软官方教程运行demo时,编译器写的是Nijia,但我用的是vs,所以选择了Visual Studio 17 2022。还有在运行 cmake --preset=default的时候会报错,fmt不存在。这东西我试了一下,在“清单模式”下安装会报错,而且应该是需要VPN,最好是在全局模式下安装boost(C++常用库,我理解有点像npm库),再进入“清单模式”运行cmake --preset=default就好了。(下载链接:github.com/microsoft/v…
配置教程:learn.microsoft.com/zh-cn/vcpkg…
4、**MSVC编译器的集成需注意平台特定配置(类比V8),** 在Windows上,MSVC与CMake的集成通常依赖vcpkg的工具链文件自动处理编译器路径和标志。
二、遇到的问题
1、开发模式,现代C++工程开发模式已经和前端工程类似了,以windows平台举例,最简单的使用visual stdio新建空项目,然后使用新建main.cpp,需要使用vcpkg安装需要的三方库,(注意,vcpkg要使用自己单独下载的包,配置系统path,切勿使用vs自带vcpkg,另外vcpkg要使用最新版本,太旧的会报错),最后写业务直接运行就行。如果vcpkg已经正确安装,并且已经安装crow,但vs对#include<crow.h>仍旧报错,不妨试试命令vcpkg integrate install。
例子参考:crowcpp.org/master/ (crow官网,需要vcpkg自行下载crow:x64-windows包,不要用crow_all.h,会报错)