如何使用NuGet为Visual Studio C++项目正确安装Boost库
报错原因
你碰到的Project 'Default' is not found错误和Boost包本身无关,是NuGet包管理器控制台没有绑定待安装包的目标项目导致的。
打开包管理器控制台时,顶部有「默认项目」下拉选择栏,如果当前解决方案没有加载任何C++项目,或是下拉栏停在空的默认选项上,执行安装命令时NuGet找不到要挂载包的项目载体,就会直接抛出这个异常。
NuGet方式为VS C++项目安装Boost的正确操作
- 先确认解决方案中已经加载了需要依赖Boost的C++项目,不要在空VS环境下直接打开控制台执行安装命令
- 调出NuGet包管理器控制台后,先在控制台顶部的「默认项目」下拉菜单中,选中你要配置Boost依赖的目标C++项目
- 不要直接安装名为
boost的包,这个是空的元包,没有实际的库文件。你搜索结果里带-vcxxx后缀的才是对应MSVC版本预编译的实际组件包,版本对应关系如下:- vc120 对应 Visual Studio 2013
- vc140 对应 Visual Studio 2015
- vc141 对应 Visual Studio 2017
- vc142 对应 Visual Studio 2019
- vc143 对应 Visual Studio 2022
- 你的项目依赖Boost.Test,直接安装匹配你当前VS版本的
boost_test-vcxxx包即可,NuGet会自动拉取该组件依赖的其他Boost基础包,不需要手动安装全量包 - 选对目标项目、匹配好对应VC版本的组件包后,再执行
Install-Package 具体包名 -Version 1.79.0就不会触发找不到项目的报错
注意事项
安装完成后如果项目编译时提示找不到Boost头文件或库文件,先右键项目打开属性页,检查C分类下「常规-附加包含目录」、链接器分类下「常规-附加库目录」是否自动添加了NuGet包的对应路径。部分老版本VS存在C项目NuGet配置不自动刷新的问题,重载一次项目即可生效。
不建议安装全量Boost的NuGet包,整体体积非常大,实际开发中用到哪个组件就安装对应拆分的vcxxx版本包即可,编译兼容性更好,也不会冗余占用磁盘空间。
内容的提问来源于stack exchange,提问作者alfC
相关产品推荐
相关产品推荐

