报错
你的 nvcc 12.1 正在调用一个 GCC 13+ 的主机编译器,而 CUDA 12.1 默认只支持到 GCC 12。
先看你现在实际用的是谁:
bash
which gcc
gcc --version
which g++
g++ --version
如果显示 13 或更高,就和报错一致。
先看系统里有没有 gcc-11:
bash
which gcc-11
gcc-11 --version
如果有,就直接这样设:
bash
export CC=/usr/bin/gcc-11
export CXX=/usr/bin/g++-11
export CUDAHOSTCXX=/usr/bin/g++-11
如果没有,但有普通系统 gcc 且版本不高于 12
先看:
bash
/usr/bin/gcc --version
然后用它:
bash
export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
export CUDAHOSTCXX=/usr/bin/g++
接着确认:
bash
echo $CC
echo $CXX
$CC --version
$CXX --version
或者,装一套 gcc/g++ 12
bash
conda install -n RMBench -c conda-forge gcc_linux-64=12 gxx_linux-64=12
装完后查:
bash
conda activate envName
which x86_64-conda-linux-gnu-gcc
x86_64-conda-linux-gnu-gcc --version
which x86_64-conda-linux-gnu-g++
x86_64-conda-linux-gnu-g++ --version
后在编译前显式指定:
bash
export CC=$CONDA_PREFIX/bin/x86_64-conda-linux-gnu-gcc
export CXX=$CONDA_PREFIX/bin/x86_64-conda-linux-gnu-g++
export CUDAHOSTCXX=$CXX