Jetson Nano(Ubuntu18.04)安装microsoft/vcpkg编译失败求助
在Jetson Nano(Ubuntu 18.04)上解决vcpkg编译失败问题
问题场景
在Jetson Nano(Ubuntu 18.04)上安装vcpkg:
- 克隆仓库成功:
git clone https://github.com/microsoft/vcpkg - 执行
./vcpkg/bootstrap-vcpkg.sh时触发编译错误,核心报错为:error: use of deleted function ‘std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&) [with _Tp = vcpkg::IBinaryProvider; _Dp = std::default_delete<vcpkg::IBinaryProvider>]’ - 尝试过重装ninja(版本1.8.2)和
--useSystemBinaries参数(该参数已失效),问题未解决。
错误根源
Ubuntu 18.04默认的GCC 7.5.0对C++17特性的支持存在缺陷,无法正确处理vcpkg新版本中std::unique_ptr的移动语义与模板推导结合的代码逻辑,导致错误调用了被禁用的拷贝构造函数。
解决方案
方案1:升级GCC到8.x版本
- 安装GCC 8:
sudo apt update sudo apt install gcc-8 g++-8 - 设置GCC 8为默认编译器:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 800 - 验证编译器版本:
gcc --version g++ --version - 重新运行bootstrap脚本:
cd vcpkg ./bootstrap-vcpkg.sh
方案2:切换到兼容GCC 7.x的vcpkg旧版本
- 切换到2022.06版本的commit:
cd vcpkg git checkout 9304a41 - 重新执行bootstrap脚本:
./bootstrap-vcpkg.sh
验证
安装完成后执行./vcpkg --version,若能正常输出版本信息则说明成功。
内容的提问来源于stack exchange,提问作者Davtag
相关产品推荐
相关产品推荐

