Visual Studio 2022集成Boost遇__builtin_FUNCSIG未定义错误及版本安装求助
Windows 10 + Visual Studio 2022环境下,通过vcpkg执行以下命令安装并集成最新版Boost:
vcpkg install boost vcpkg integrate install
但在CUDA项目中包含以下任意头文件时触发编译错误:
#include <boost/variant.hpp> #include <boost/algorithm/string.hpp>
错误信息:
Error identifier "__builtin_FUNCSIG" is undefined D:\code\tool\test\vcpkg\installed\x64-windows\include\boost\throw_exception.hpp 224
详细编译日志显示错误由nvcc编译CUDA代码时触发,推测切换到Boost 1.70.0可解决问题,但不清楚如何通过vcpkg安装指定版本并集成到VS2022。
方法一:通过vcpkg安装Boost 1.70.0
1. 打开VS2022开发者命令提示符
启动Developer Command Prompt for Visual Studio 2022,切换到你的vcpkg安装目录(比如D:\code\tool\test\vcpkg)。
2. 安装指定版本的Boost
执行以下命令安装x64平台的Boost 1.70.0(如需其他组件,可在[core]处添加对应组件名,比如[variant,algorithm]):
vcpkg install boost[core]:x64-windows --version=1.70.0
3. 验证安装结果
执行命令确认版本:
vcpkg list boost
输出应显示boost:x64-windows 1.70.0,表示安装成功。
4. 集成到Visual Studio 2022
执行集成命令,让VS自动配置项目路径:
vcpkg integrate install
当看到提示“All MSBuild C++ projects can now #include any installed libraries.”时,说明集成完成。
5. 项目验证
打开你的VS2022 CUDA项目,右键项目→属性:
- 检查VC++目录→包含目录,确认已自动包含vcpkg安装的Boost 1.70.0路径
- 检查链接器→附加库目录,确认已包含对应Boost库文件路径
方法二:手动编译安装Boost 1.70.0
如果vcpkg指定版本安装失败,可手动操作:
- 下载Boost 1.70.0压缩包并解压到本地目录(比如
D:\boost_1_70_0) - 打开Developer Command Prompt for Visual Studio 2022,切换到解压目录,执行:
bootstrap.bat
- 编译并安装到指定目录(比如
D:\boost_install_170):
b2 install --prefix=D:\boost_install_170 toolset=msvc-14.3 architecture=x86 address-model=64
- 在VS2022项目属性中手动添加:
- VC++目录→包含目录:
D:\boost_install_170\include - 链接器→附加库目录:
D:\boost_install_170\lib
- VC++目录→包含目录:
内容的提问来源于stack exchange,提问作者Tang SuKai

