安装Catch2时出现MSB3073错误如何解决
Catch2安装MSB3073错误解决方案
这个报错属于安装失败异常,会导致Catch2没有被正确写入目标目录,无法被其他项目正常识别引用,可通过以下方法解决:
方案1:以管理员身份执行安装(最简便)
- 关闭当前打开的终端窗口
- 右键点击你使用的终端(命令提示符/PowerShell/终端),选择以管理员身份运行
- 重新进入Catch2源码根目录,执行安装命令即可:
cmake --build build/ --target install
方案2:自定义安装路径(无需管理员权限)
如果不想使用管理员权限,可指定有权限写入的目录作为安装目标:
- 先删除旧的编译缓存目录:
rmdir /s /q build
- 重新执行cmake配置命令,添加
CMAKE_INSTALL_PREFIX参数指定安装路径(示例中路径可替换为你自己的目标目录):
cmake -Bbuild -H. -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=C:/dev/Catch2
- 执行编译安装命令:
cmake --build build/ --target install
- 后续项目引用Catch2时,在项目的CMake配置中提前添加如下配置即可正常识别:
set(Catch2_ROOT "C:/dev/Catch2") find_package(Catch2 REQUIRED)
补充排查方案
如果以上两种方法执行后仍然报错,大概率是编译配置和安装配置不匹配导致,先执行对应配置的编译命令再安装即可:
# 先编译Debug版本产物 cmake --build build/ --config Debug # 再执行安装 cmake --build build/ --target install
安装成功验证
- 默认路径安装:检查
C:\Program Files (x86)\Catch2或C:\Program Files\Catch2目录下是否存在include、lib、cmake三个子目录,存在即为安装成功 - 自定义路径安装:检查你指定的安装目录下是否存在上述三个子目录即可
内容的提问来源于stack exchange,提问作者Black Jack MC
相关产品推荐
相关产品推荐

