我正在运行Arch Linux,并试图在Qt中构建一个项目,然而,Qt吐出以下错误:
/opt/cuda/include/crt/host_config.h:129:error:#error -- unsupported GNU version!gcc版本超过7不支持!
我已经尝试了以前的Stack Overflow帖子中的一个建议:
CUDA incompatible with my gcc version
我没有使用确切的命令,因为我的cuda位于/opt/cuda/bin/gcc中。我对g++执行了相同的命令。然而,终端输出这些文件已经链接。我确实通过查看实际文件并查看其属性来确认这一点。
有人能为我的问题提出解决方案吗?
2条答案
按热度按时间wgxvkvu91#
我设法做到这一点,使用这两行,这将更新cuda到gcc7的符号链接
字符串
x6yk4ghg2#
该问题来自CUDA-10主目录树中的cuda-10.0/targets/x86_64-linux/include/crt/host_host.h。您的架构的目标位于/opt中。
一些帖子建议伪造不平等
字符串
说
型
但这不是个好主意
型
在一些琐碎的情况下是允许的,但从根本上说仍然是同样的坏黑客。
你的系统上可能有替代程序,它构造了指向gnu工具链版本8文件的符号链接,这就是为什么你会得到一个版本7已经安装的提示。
您可以学习如何仅为开发人员用户修改您的备用帐户,而不是为root或任何系统管理员帐户修改。您可能需要记住如何在7和8之间来回切换,以便在实际需要时仅使用7,因为许多其他事情可能只能使用8进行测试。
如果这对你不起作用,你可以从源代码编译gcc-7。准备性的系统管理工作包括dnf安装,从源代码编译,安装7.4 gnu编译器,以及设置仅用于CUDA开发的路径。如果你安装了gnu gcc和g++版本8,并安装了相应的标准库,并且它工作正常,版本7编译器可以相对容易地安装。
浏览并找到https://gcc.gnu.org/mirrors.html上列出的最近的镜像,然后复制gcc-7.4.0.tar.xz的链接位置,并将其放置在shell变量u中,如下例所示。
型
然后你可以把剩下的作为命令。
型
然后你在你开发的shell和工具中执行它。不要把它放在系统登录设备或.bashrc或.bash_profile中,原因和上面一样。其他东西可能只在版本8中测试。相反,把它们放在你的开发环境中。
型