CUDA编译期间,CLion的目标卸载过程中使用了错误的编译器

耶胡塔

我正在尝试在CLion 2020.1中配置一个非常简单的CUDA项目。

我使用的是Fedora 31(默认gcc为9.3),但是从源代码编译了gcc 8.2才能与Cuda Toolkit 10.2一起使用。

Cuda示例使用所提供的make进行编译并运行良好,因此编译器可以在nvcc上正常工作并正常运行。

在CLion中,我已经用柯南下载了googletest。“柯南”配置文件将8.2指定为要使用的gcc版本。

CMakeOutput.log中对GCC的所有引用均指向正确的bin文件。但是,由于使用了错误的版本,所以我不断收到编译器错误。

在我的CMakeLists.txt中,我有:

set(gcc82 /usr/local/gcc82/bin)
set(CMAKE_C_COMPILER ${gcc82}/gcc82)
set(CMAKE_CXX_COMPILER ${gcc82}/g++82)
set(CMAKE_CUDA_HOST_COMPILER ${gcc82}/g++82)

project(RBF-Interpolation-Tests CUDA CXX)

CMake配置步骤似乎也很高兴:

/opt/clion-2018.3.4/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=/usr/local/gcc82/bin/gcc82 -DCMAKE_CXX_COMPILER=/usr/local/gcc82/bin/g++82 -G "CodeBlocks - Unix Makefiles" /home/rafael/Projects/bitbucket/RBF-Interpolation-Tests
-- The CUDA compiler identification is NVIDIA 10.2.89
-- The CXX compiler identification is GNU 8.2.0
-- Check for working CUDA compiler: /usr/local/cuda/bin/nvcc
-- Check for working CUDA compiler: /usr/local/cuda/bin/nvcc -- works
-- Detecting CUDA compiler ABI info
-- Detecting CUDA compiler ABI info - done
-- Check for working CXX compiler: /usr/local/gcc82/bin/g++82
-- Check for working CXX compiler: /usr/local/gcc82/bin/g++82 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Conan: Adjusting output directories
-- Conan: Using cmake global configuration
-- Conan: Adjusting default RPATHs Conan policies
-- Conan: Adjusting language standard
-- Current conanbuildinfo.cmake directory: /home/rafael/Projects/bitbucket/RBF-Interpolation-Tests/build
-- Conan: Compiler GCC>=5, checking major version 8.2
-- Conan: Checking correct version: 8.2
-- Configuring done
-- Generating done
-- Build files have been written to: /home/rafael/Projects/bitbucket/RBF-Interpolation-Tests/build

尽管在我的机器上可以使用CLion,但该版本是最新的:

CLion 2020.1
Build #CL-201.6668.126, built on April 9, 2020
Runtime version: 11.0.6+8-b765.25 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 5.5.17-200.fc31.x86_64
GC: ParNew, ConcurrentMarkSweep
Memory: 10227M
Cores: 12
Registry: run.processes.with.pty=TRUE
Non-Bundled Plugins: GLSL, com.jfrog.conan.clion, lermitage.intellij.extra.icons
Current Desktop: GNOME

我总是得到的错误是:

Cannot get compiler information:
    Compiler exited with error code 1: gcc -xc++ -D__CUDA_ARCH__=300 -E -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -D__CUDACC__ -D__NVCC__ -I/home/rafael/.conan/data/gtest/1.10.0/_/_/package/65eda67f91bbd445d66656724e8acbe2afb564b0/include -I/usr/local/cuda/bin/../targets/x86_64-linux/include -D__CUDACC_VER_MAJOR__=10 -D__CUDACC_VER_MINOR__=2 -D__CUDACC_VER_BUILD__=89 -include cuda_runtime.h -m64 -g -gdwarf-2 -fpch-preprocess -v -dD -E
    Using built-in specs.
    COLLECT_GCC=gcc
    OFFLOAD_TARGET_NAMES=nvptx-none
    OFFLOAD_TARGET_DEFAULT=1
    Target: x86_64-redhat-linux
    Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,d,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
    Thread model: posix
    gcc version 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC) 
    COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=300' '-E' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-D' '__CUDACC__' '-D' '__NVCC__' '-I' '/home/rafael/.conan/data/gtest/1.10.0/_/_/package/65eda67f91bbd445d66656724e8acbe2afb564b0/include' '-I' '/usr/local/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=10' '-D' '__CUDACC_VER_MINOR__=2' '-D' '__CUDACC_VER_BUILD__=89' '-include' 'cuda_runtime.h' '-m64' '-g' '-gdwarf-2' '-fpch-preprocess' '-v' '-dD' '-E' '-D' '___CIDR_DEFINITIONS_END' '-mtune=generic' '-march=x86-64'

这绝对是错误的GCC版本。

我尝试过在Settings-> Cmake-> Environment withCC=/usr/local/gcc82/bin;CXX=/usr/local/gcc82/bin/g++82中以及在Settings-> Toolchains-> C和C ++ Compiler中指定GCC版本,结果是相同的。

我不知道为什么目标卸载过程没有选择指定的gcc版本。有任何想法吗?

刺柏

因此,我针对此问题向CLion提交了一个错误-一个@MaximBanaev指出:

CPP-19089:无法让CLion与CUDA一起使用非默认C ++编译器

CLion根本没有在其工具链机制中适当考虑此问题。问题不仅仅在于环境,还需要适当的UI来设置CUDA的“支持” C ++编译器,此外CLion会在启动时注意相关设置。

这不是我尝试在CUDA项目中使用CLion时遇到的唯一“基本”错误。支持仍然是半生不熟的恕我直言。我希望他们做对了,因为我现在想退出这个IDE,但现在还不能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CLion:启用编译器错误/警告

来自分类Dev

每个目标cuda编译器选项与cmake

来自分类Dev

gcc交叉编译器使用了错误的汇编器

来自分类Dev

在Swift中使用编译器变量

来自分类Dev

使用Javac的StanfordCoreNLP编译器错误

来自分类Dev

使用Javac的StanfordCoreNLP编译器错误

来自分类Dev

使用GNU编译器时Makefile错误:多个目标模式

来自分类Dev

使用GNU编译器时Makefile错误:多个目标模式

来自分类Dev

CLion无法识别Cygwin编译器

来自分类Dev

GCC(通过 CUDA)内部函数的编译器错误,但我没有使用任何

来自分类Dev

使用Python子过程命令调用C编译器

来自分类Dev

使用 CLion、CMake 和 VS2017 编译器编译 C++17

来自分类Dev

为什么编译器说我的过程中未声明我的表单变量?

来自分类Dev

在构建过程中将符号值传递给Rust编译器

来自分类Dev

为什么编译器说我的过程中未声明我的表单变量?

来自分类Dev

隐含编译器错误?

来自分类Dev

Swift编译器错误

来自分类Dev

奇怪的编译器错误

来自分类Dev

很多编译器错误

来自分类Dev

奇怪的编译器错误

来自分类Dev

奇怪的编译器错误

来自分类Dev

Maven编译器错误

来自分类Dev

编译器中的错误?

来自分类Dev

Prisma 编译器错误

来自分类Dev

在Gradle中使用IntelliJ Javac2编译器而不是标准编译器

来自分类Dev

我可以在编译过程中使用Byte Buddy转换已编译的类吗?

来自分类Dev

在遇到用户创建的错误后,如何以编程方式强制编译器停止编译过程?

来自分类Dev

在某些C ++编译器上使用限制限定符的编译器错误

来自分类Dev

编译器未完成过程