learning-cxx 学习cpp 环境配置 + bug解决

学习CPP网址

https://github.com/LearningInfiniTensor/learning-cxx

安装环境

1.配置xmake的环境

xmake是c++的构建工具
最简单的配置方法就是安装mcvs,然后选择必要的那两个包

在这里插入图片描述
查看版本,是否安装成功

gcc --version
g++ --version

2.安装xmake

我的是windows11,f复制下面的代码在powershell中

Invoke-Expression (Invoke-Webrequest 'https://xmake.io/psget.text' -UseBasicParsing).Content

3. 克隆and构建

git clone https://github.com/LearningInfiniTensor/learning-cxx.git

cd learning-cxx
xmake

4.运行

xmake run learn 0

这里有个坑,我的路径没设置好,有空格,导致二次编译运行就有bug,然后一直提示invalid agruement。
在这里插入图片描述
解决办法就是
在这里插入图片描述
在生成的commd string 两边加上""

<think>好的,用户之前遇到了CMake配置问题,主要是找不到Torch和CUDA相关的库。现在用户提到要下载libtorch-cxx11-abi-shared-with-deps-1.10.2+cu111,我需要详细分析这个版本的选择以及安装步骤。 首先,用户可能已经根据之前的建议去PyTorch官网寻找LibTorch的版本,但需要确认他们是否选择了正确的版本。这个版本号中的1.10.2是PyTorch的版本,cu111表示CUDA 11.1。用户需要确保他们的系统CUDA版本匹配,否则可能会出现兼容性问题。 接下来,我需要考虑用户的操作系统环境。之前的错误日志显示路径中有/home/djy/,这可能是在Linux系统下,所以下载的应该是Linux版本的LibTorch。需要提醒用户检查下载的版本是否与系统匹配,例如Linux、Windows或macOS。 然后,关于cxx11-abi和shared-with-deps的部分。cxx11-abi表示使用C++11的ABI兼容性,这通常在现代系统中需要,特别是如果用户的项目也启用了C++11或更高版本的话。而shared-with-deps意味着动态链接库,并且包含所有依赖项,这样在编译时会更容易,但部署时需要确保动态库的存在。 用户可能需要指导如何正确设置CMake来使用这个下载的LibTorch。比如,解压后的路径需要添加到CMAKE_PREFIX_PATH或者设置Torch_DIR环境变量。同时,CUDA的路径也需要正确配置,特别是如果用户手动安装了不同版本的CUDA工具包。 另外,用户之前的错误中还提到了CUDA_TOOLKIT_INCLUDE、CUDA_CUDART_LIBRARY等变量未找到,这可能是因为CUDA没有正确安装或者CMake找不到CUDA的路径。需要建议用户检查CUDA的安装情况,确保nvcc可用,并且环境变量如CUDA_HOME正确设置。 可能还需要提醒用户版本兼容性,比如PyTorch 1.10.2对应的CUDA 11.1是否与系统中安装的CUDA驱动兼容。例如,CUDA 11.1需要NVIDIA驱动程序版本>=450.80.02,用户需要确认他们的驱动是否符合要求。 最后,用户可能需要一个完整的示例命令来配置CMake,包括指定LibTorch路径和CUDA路径,以及验证安装是否成功。此外,常见问题如动态库找不到的问题,可能需要设置LD_LIBRARY_PATH或者将LibTorch的lib目录添加到库路径中。 总结下来,需要分步骤指导用户如何下载正确的LibTorch版本,验证系统环境,配置CMake,并处理可能的依赖问题,同时提醒常见的兼容性和路径设置问题。</think>这个错误提示表明项目在编译过程中同时存在 **LibTorch(PyTorch C++库)** 和 **CUDA依赖项** 的配置问题。你需要完成以下两个核心步骤: --- ### 一、安装 **LibTorch (1.10.2+cu111)** 的完整流程 #### 1. 下载官方预编译包 访问 PyTorch 官网的历史版本页面: ``` https://download.pytorch.org/libtorch/cu111/libtorch-cxx11-abi-shared-with-deps-1.10.2%2Bcu111.zip ``` 或直接通过 `wget` 下载: ```bash wget https://download.pytorch.org/libtorch/cu111/libtorch-cxx11-abi-shared-with-deps-1.10.2%2Bcu111.zip ``` #### 2. 解压并验证文件结构 ```bash unzip libtorch-cxx11-abi-shared-with-deps-1.10.2%2Bcu111.zip cd libtorch && tree -L 3 ``` 预期目录结构应包含: ``` libtorch/ ├── include/ # 头文件 ├── lib/ # 动态库文件(.so) ├── share/ │ └── cmake/ # CMake配置文件 │ └── Torch/ └── ... ``` #### 3. 配置环境变量(临时生效) ```bash export Torch_DIR=$(pwd)/libtorch/share/cmake/Torch export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/libtorch/lib ``` #### 4. CMake 集成示例 在项目的 `CMakeLists.txt` 中添加: ```cmake find_package(Torch REQUIRED) target_link_libraries(your_target ${TORCH_LIBRARIES}) ``` --- ### 二、解决 CUDA 依赖问题 #### 1. 确认 CUDA 11.1 环境 ```bash # 检查驱动兼容性 nvidia-smi | grep "Driver Version" # 应显示支持 CUDA 11.1 的驱动版本(>=450.80.02) # 验证 CUDA 工具包 nvcc --version | grep "release 11.1" ``` #### 2. 强制指定 CUDA 路径 若 CMake 未能自动检测 CUDA 11.1: ```bash cmake -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.1 .. ``` #### 3. 完整编译命令示例 ```bash cmake -B build \ -DCMAKE_PREFIX_PATH=/path/to/libtorch \ -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.1 \ -DCMAKE_CXX_STANDARD=14 cmake --build build -j$(nproc) ``` --- ### 关键参数说明 | 参数名 | 作用 | |---------------------------|----------------------------------------------------------------------| | `cxx11-abi` | 启用 C++11 ABI 兼容(必须与项目编译选项一致) | | `shared-with-deps` | 包含动态链接库及所有依赖项(推荐开发使用) | | `cu111` | 表示该版本基于 CUDA 11.1 编译 | --- ### 常见问题排查 #### 1. **GLIBCXX 版本不兼容** 错误提示类似: ``` /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found ``` **解决方案**: ```bash # 更新 libstdc++ sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt install gcc-11 g++-11 ``` #### 2. **CUDA 与驱动版本不匹配** 若出现 `CUDA driver version is insufficient` 错误: ```bash # 升级 NVIDIA 驱动 sudo apt install nvidia-driver-470 # 根据实际情况选择版本 ``` #### 3. **多版本 CUDA 管理** 使用 `update-alternatives` 切换默认 CUDA 版本: ```bash sudo update-alternatives --config cuda ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值