Gcc versions later than 7 are not supported by CUDA 10 - Qt Error in Arch Linux





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







1















I am running Arch Linux and trying to build a project in Qt however, Qt spits the following error:




/opt/cuda/include/crt/host_config.h:129: error: #error -- unsupported GNU version! gcc versions later than 7 are not supported!




I have already tried a suggestion from a previous Stack Overflow post found here:



CUDA incompatible with my gcc version



I did not use the exact command as my cuda is located in /opt/cuda/bin/gcc. I did the same command for g++. However, the terminal outputs that these files are already linked. I did confirm this by going to the actual file and looking at it's properties.



Can someone please suggest a solution to my issue?










share|improve this question

























  • Why not install gcc-7 then? You can have several versions of gcc on your computer.

    – Marc Glisse
    Nov 18 '18 at 15:16











  • I have tried installing this package:archlinux.org/packages/community/x86_64/gcc7 but it says its already installed and just overwrites what is there.

    – patelvrajn
    Nov 18 '18 at 19:19




















1















I am running Arch Linux and trying to build a project in Qt however, Qt spits the following error:




/opt/cuda/include/crt/host_config.h:129: error: #error -- unsupported GNU version! gcc versions later than 7 are not supported!




I have already tried a suggestion from a previous Stack Overflow post found here:



CUDA incompatible with my gcc version



I did not use the exact command as my cuda is located in /opt/cuda/bin/gcc. I did the same command for g++. However, the terminal outputs that these files are already linked. I did confirm this by going to the actual file and looking at it's properties.



Can someone please suggest a solution to my issue?










share|improve this question

























  • Why not install gcc-7 then? You can have several versions of gcc on your computer.

    – Marc Glisse
    Nov 18 '18 at 15:16











  • I have tried installing this package:archlinux.org/packages/community/x86_64/gcc7 but it says its already installed and just overwrites what is there.

    – patelvrajn
    Nov 18 '18 at 19:19
















1












1








1








I am running Arch Linux and trying to build a project in Qt however, Qt spits the following error:




/opt/cuda/include/crt/host_config.h:129: error: #error -- unsupported GNU version! gcc versions later than 7 are not supported!




I have already tried a suggestion from a previous Stack Overflow post found here:



CUDA incompatible with my gcc version



I did not use the exact command as my cuda is located in /opt/cuda/bin/gcc. I did the same command for g++. However, the terminal outputs that these files are already linked. I did confirm this by going to the actual file and looking at it's properties.



Can someone please suggest a solution to my issue?










share|improve this question
















I am running Arch Linux and trying to build a project in Qt however, Qt spits the following error:




/opt/cuda/include/crt/host_config.h:129: error: #error -- unsupported GNU version! gcc versions later than 7 are not supported!




I have already tried a suggestion from a previous Stack Overflow post found here:



CUDA incompatible with my gcc version



I did not use the exact command as my cuda is located in /opt/cuda/bin/gcc. I did the same command for g++. However, the terminal outputs that these files are already linked. I did confirm this by going to the actual file and looking at it's properties.



Can someone please suggest a solution to my issue?







qt gcc cuda g++ archlinux






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 16 '18 at 19:56









James Z

11.2k71936




11.2k71936










asked Nov 16 '18 at 19:35









patelvrajnpatelvrajn

416




416













  • Why not install gcc-7 then? You can have several versions of gcc on your computer.

    – Marc Glisse
    Nov 18 '18 at 15:16











  • I have tried installing this package:archlinux.org/packages/community/x86_64/gcc7 but it says its already installed and just overwrites what is there.

    – patelvrajn
    Nov 18 '18 at 19:19





















  • Why not install gcc-7 then? You can have several versions of gcc on your computer.

    – Marc Glisse
    Nov 18 '18 at 15:16











  • I have tried installing this package:archlinux.org/packages/community/x86_64/gcc7 but it says its already installed and just overwrites what is there.

    – patelvrajn
    Nov 18 '18 at 19:19



















Why not install gcc-7 then? You can have several versions of gcc on your computer.

– Marc Glisse
Nov 18 '18 at 15:16





Why not install gcc-7 then? You can have several versions of gcc on your computer.

– Marc Glisse
Nov 18 '18 at 15:16













I have tried installing this package:archlinux.org/packages/community/x86_64/gcc7 but it says its already installed and just overwrites what is there.

– patelvrajn
Nov 18 '18 at 19:19







I have tried installing this package:archlinux.org/packages/community/x86_64/gcc7 but it says its already installed and just overwrites what is there.

– patelvrajn
Nov 18 '18 at 19:19














1 Answer
1






active

oldest

votes


















1














The issue comes from cuda-10.0/targets/x86_64-linux/include/crt/host_config.h in the main CUDA-10 directory tree. The target for your architecture was placed in /opt.



Some posts recommend faking the inequality



    if __GNUC__ > 7


to say



    if __GNUC__ > 8


but that is a bad idea. Using



    make 'NVCCFLAGS=-m64 -D__GNUC__=7' -k


is permissible in some trivial cases, but still fundamentally the same bad hack.



You probably have alternates on your system which has constructed symbolic links pointing to the version 8 gnu tool chain files. That's why you get an indication version 7 is already installed.



You can learn how to modify your alternates for just your developer users BUT NOT for root or any system admin accounts. You may want to remember how to switch back and forth between 7 and 8 so you only use 7 when actually needed, since many other things may be tested only with 8.



If that doesn't work for you, you can build gcc-7 from source. The preparatory system admin work includes a dnf install, a build from source, an install of 7.4 gnu compiler, and a set up of paths for CUDA development only. If you have gnu gcc and g++ version 8 installed with the appropriate standard libraries and it works, the version 7 compiler can be installed with relative ease.



Browse and find the nearest mirror listed on https://gcc.gnu.org/mirrors.html and then copy the link location for gcc-7.4.0.tar.xz and place it in the shell variable u like this example.



    u="http://mirrors.concertpass.com/gcc/releases/gcc-7.4.0/gcc-7.4.0.tar.xz"


Then you can do the rest as commands.



    sudo dnf install libmpc-devel
cd
mkdir -p scratch
cd scratch
wget -O - "$u" |tar Jxf -
cd gcc-7.4.0
mkdir build
cd build
../configure --prefix=/usr/local/gcc-7
make
sudo bash -c "cd "`pwd`"; make install"


Then you execute this in the shells and tools you develop with. Do NOT put this in the system login apparatus or in .bashrc or .bash_profile, for the same reason as above. Other things may be tested with version 8 only. Instead place them in your development environment where they belong.



    LD_LIBRARY_PATH=/usr/local/gcc-7/lib64:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/usr/local/gcc-7/lib:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/usr/local/cuda-10.0/NsightCompute-1.0/host/linux-desktop-glibc_2_11_3-glx-x64/Plugins:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/usr/local/cuda-10.0/NsightCompute-1.0/target/linux-desktop-glibc_2_11_3-glx-x64:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/usr/local/cuda-10.0/targets/x86_64-linux/lib/stubs:$LD_LIBRARY_PATH

PATH=/usr/local/gcc-7/bin:$PATH
PATH=/usr/local/cuda-10.0/bin:$PATH
PATH=$HOME/big/cuda.samples/NVIDIA_CUDA-10.0_Samples/bin/x86_64/linux/release:$PATH





share|improve this answer
























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53344283%2fgcc-versions-later-than-7-are-not-supported-by-cuda-10-qt-error-in-arch-linux%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    The issue comes from cuda-10.0/targets/x86_64-linux/include/crt/host_config.h in the main CUDA-10 directory tree. The target for your architecture was placed in /opt.



    Some posts recommend faking the inequality



        if __GNUC__ > 7


    to say



        if __GNUC__ > 8


    but that is a bad idea. Using



        make 'NVCCFLAGS=-m64 -D__GNUC__=7' -k


    is permissible in some trivial cases, but still fundamentally the same bad hack.



    You probably have alternates on your system which has constructed symbolic links pointing to the version 8 gnu tool chain files. That's why you get an indication version 7 is already installed.



    You can learn how to modify your alternates for just your developer users BUT NOT for root or any system admin accounts. You may want to remember how to switch back and forth between 7 and 8 so you only use 7 when actually needed, since many other things may be tested only with 8.



    If that doesn't work for you, you can build gcc-7 from source. The preparatory system admin work includes a dnf install, a build from source, an install of 7.4 gnu compiler, and a set up of paths for CUDA development only. If you have gnu gcc and g++ version 8 installed with the appropriate standard libraries and it works, the version 7 compiler can be installed with relative ease.



    Browse and find the nearest mirror listed on https://gcc.gnu.org/mirrors.html and then copy the link location for gcc-7.4.0.tar.xz and place it in the shell variable u like this example.



        u="http://mirrors.concertpass.com/gcc/releases/gcc-7.4.0/gcc-7.4.0.tar.xz"


    Then you can do the rest as commands.



        sudo dnf install libmpc-devel
    cd
    mkdir -p scratch
    cd scratch
    wget -O - "$u" |tar Jxf -
    cd gcc-7.4.0
    mkdir build
    cd build
    ../configure --prefix=/usr/local/gcc-7
    make
    sudo bash -c "cd "`pwd`"; make install"


    Then you execute this in the shells and tools you develop with. Do NOT put this in the system login apparatus or in .bashrc or .bash_profile, for the same reason as above. Other things may be tested with version 8 only. Instead place them in your development environment where they belong.



        LD_LIBRARY_PATH=/usr/local/gcc-7/lib64:$LD_LIBRARY_PATH
    LD_LIBRARY_PATH=/usr/local/gcc-7/lib:$LD_LIBRARY_PATH
    LD_LIBRARY_PATH=/usr/local/cuda-10.0/NsightCompute-1.0/host/linux-desktop-glibc_2_11_3-glx-x64/Plugins:$LD_LIBRARY_PATH
    LD_LIBRARY_PATH=/usr/local/cuda-10.0/NsightCompute-1.0/target/linux-desktop-glibc_2_11_3-glx-x64:$LD_LIBRARY_PATH
    LD_LIBRARY_PATH=/usr/local/cuda-10.0/targets/x86_64-linux/lib/stubs:$LD_LIBRARY_PATH

    PATH=/usr/local/gcc-7/bin:$PATH
    PATH=/usr/local/cuda-10.0/bin:$PATH
    PATH=$HOME/big/cuda.samples/NVIDIA_CUDA-10.0_Samples/bin/x86_64/linux/release:$PATH





    share|improve this answer




























      1














      The issue comes from cuda-10.0/targets/x86_64-linux/include/crt/host_config.h in the main CUDA-10 directory tree. The target for your architecture was placed in /opt.



      Some posts recommend faking the inequality



          if __GNUC__ > 7


      to say



          if __GNUC__ > 8


      but that is a bad idea. Using



          make 'NVCCFLAGS=-m64 -D__GNUC__=7' -k


      is permissible in some trivial cases, but still fundamentally the same bad hack.



      You probably have alternates on your system which has constructed symbolic links pointing to the version 8 gnu tool chain files. That's why you get an indication version 7 is already installed.



      You can learn how to modify your alternates for just your developer users BUT NOT for root or any system admin accounts. You may want to remember how to switch back and forth between 7 and 8 so you only use 7 when actually needed, since many other things may be tested only with 8.



      If that doesn't work for you, you can build gcc-7 from source. The preparatory system admin work includes a dnf install, a build from source, an install of 7.4 gnu compiler, and a set up of paths for CUDA development only. If you have gnu gcc and g++ version 8 installed with the appropriate standard libraries and it works, the version 7 compiler can be installed with relative ease.



      Browse and find the nearest mirror listed on https://gcc.gnu.org/mirrors.html and then copy the link location for gcc-7.4.0.tar.xz and place it in the shell variable u like this example.



          u="http://mirrors.concertpass.com/gcc/releases/gcc-7.4.0/gcc-7.4.0.tar.xz"


      Then you can do the rest as commands.



          sudo dnf install libmpc-devel
      cd
      mkdir -p scratch
      cd scratch
      wget -O - "$u" |tar Jxf -
      cd gcc-7.4.0
      mkdir build
      cd build
      ../configure --prefix=/usr/local/gcc-7
      make
      sudo bash -c "cd "`pwd`"; make install"


      Then you execute this in the shells and tools you develop with. Do NOT put this in the system login apparatus or in .bashrc or .bash_profile, for the same reason as above. Other things may be tested with version 8 only. Instead place them in your development environment where they belong.



          LD_LIBRARY_PATH=/usr/local/gcc-7/lib64:$LD_LIBRARY_PATH
      LD_LIBRARY_PATH=/usr/local/gcc-7/lib:$LD_LIBRARY_PATH
      LD_LIBRARY_PATH=/usr/local/cuda-10.0/NsightCompute-1.0/host/linux-desktop-glibc_2_11_3-glx-x64/Plugins:$LD_LIBRARY_PATH
      LD_LIBRARY_PATH=/usr/local/cuda-10.0/NsightCompute-1.0/target/linux-desktop-glibc_2_11_3-glx-x64:$LD_LIBRARY_PATH
      LD_LIBRARY_PATH=/usr/local/cuda-10.0/targets/x86_64-linux/lib/stubs:$LD_LIBRARY_PATH

      PATH=/usr/local/gcc-7/bin:$PATH
      PATH=/usr/local/cuda-10.0/bin:$PATH
      PATH=$HOME/big/cuda.samples/NVIDIA_CUDA-10.0_Samples/bin/x86_64/linux/release:$PATH





      share|improve this answer


























        1












        1








        1







        The issue comes from cuda-10.0/targets/x86_64-linux/include/crt/host_config.h in the main CUDA-10 directory tree. The target for your architecture was placed in /opt.



        Some posts recommend faking the inequality



            if __GNUC__ > 7


        to say



            if __GNUC__ > 8


        but that is a bad idea. Using



            make 'NVCCFLAGS=-m64 -D__GNUC__=7' -k


        is permissible in some trivial cases, but still fundamentally the same bad hack.



        You probably have alternates on your system which has constructed symbolic links pointing to the version 8 gnu tool chain files. That's why you get an indication version 7 is already installed.



        You can learn how to modify your alternates for just your developer users BUT NOT for root or any system admin accounts. You may want to remember how to switch back and forth between 7 and 8 so you only use 7 when actually needed, since many other things may be tested only with 8.



        If that doesn't work for you, you can build gcc-7 from source. The preparatory system admin work includes a dnf install, a build from source, an install of 7.4 gnu compiler, and a set up of paths for CUDA development only. If you have gnu gcc and g++ version 8 installed with the appropriate standard libraries and it works, the version 7 compiler can be installed with relative ease.



        Browse and find the nearest mirror listed on https://gcc.gnu.org/mirrors.html and then copy the link location for gcc-7.4.0.tar.xz and place it in the shell variable u like this example.



            u="http://mirrors.concertpass.com/gcc/releases/gcc-7.4.0/gcc-7.4.0.tar.xz"


        Then you can do the rest as commands.



            sudo dnf install libmpc-devel
        cd
        mkdir -p scratch
        cd scratch
        wget -O - "$u" |tar Jxf -
        cd gcc-7.4.0
        mkdir build
        cd build
        ../configure --prefix=/usr/local/gcc-7
        make
        sudo bash -c "cd "`pwd`"; make install"


        Then you execute this in the shells and tools you develop with. Do NOT put this in the system login apparatus or in .bashrc or .bash_profile, for the same reason as above. Other things may be tested with version 8 only. Instead place them in your development environment where they belong.



            LD_LIBRARY_PATH=/usr/local/gcc-7/lib64:$LD_LIBRARY_PATH
        LD_LIBRARY_PATH=/usr/local/gcc-7/lib:$LD_LIBRARY_PATH
        LD_LIBRARY_PATH=/usr/local/cuda-10.0/NsightCompute-1.0/host/linux-desktop-glibc_2_11_3-glx-x64/Plugins:$LD_LIBRARY_PATH
        LD_LIBRARY_PATH=/usr/local/cuda-10.0/NsightCompute-1.0/target/linux-desktop-glibc_2_11_3-glx-x64:$LD_LIBRARY_PATH
        LD_LIBRARY_PATH=/usr/local/cuda-10.0/targets/x86_64-linux/lib/stubs:$LD_LIBRARY_PATH

        PATH=/usr/local/gcc-7/bin:$PATH
        PATH=/usr/local/cuda-10.0/bin:$PATH
        PATH=$HOME/big/cuda.samples/NVIDIA_CUDA-10.0_Samples/bin/x86_64/linux/release:$PATH





        share|improve this answer













        The issue comes from cuda-10.0/targets/x86_64-linux/include/crt/host_config.h in the main CUDA-10 directory tree. The target for your architecture was placed in /opt.



        Some posts recommend faking the inequality



            if __GNUC__ > 7


        to say



            if __GNUC__ > 8


        but that is a bad idea. Using



            make 'NVCCFLAGS=-m64 -D__GNUC__=7' -k


        is permissible in some trivial cases, but still fundamentally the same bad hack.



        You probably have alternates on your system which has constructed symbolic links pointing to the version 8 gnu tool chain files. That's why you get an indication version 7 is already installed.



        You can learn how to modify your alternates for just your developer users BUT NOT for root or any system admin accounts. You may want to remember how to switch back and forth between 7 and 8 so you only use 7 when actually needed, since many other things may be tested only with 8.



        If that doesn't work for you, you can build gcc-7 from source. The preparatory system admin work includes a dnf install, a build from source, an install of 7.4 gnu compiler, and a set up of paths for CUDA development only. If you have gnu gcc and g++ version 8 installed with the appropriate standard libraries and it works, the version 7 compiler can be installed with relative ease.



        Browse and find the nearest mirror listed on https://gcc.gnu.org/mirrors.html and then copy the link location for gcc-7.4.0.tar.xz and place it in the shell variable u like this example.



            u="http://mirrors.concertpass.com/gcc/releases/gcc-7.4.0/gcc-7.4.0.tar.xz"


        Then you can do the rest as commands.



            sudo dnf install libmpc-devel
        cd
        mkdir -p scratch
        cd scratch
        wget -O - "$u" |tar Jxf -
        cd gcc-7.4.0
        mkdir build
        cd build
        ../configure --prefix=/usr/local/gcc-7
        make
        sudo bash -c "cd "`pwd`"; make install"


        Then you execute this in the shells and tools you develop with. Do NOT put this in the system login apparatus or in .bashrc or .bash_profile, for the same reason as above. Other things may be tested with version 8 only. Instead place them in your development environment where they belong.



            LD_LIBRARY_PATH=/usr/local/gcc-7/lib64:$LD_LIBRARY_PATH
        LD_LIBRARY_PATH=/usr/local/gcc-7/lib:$LD_LIBRARY_PATH
        LD_LIBRARY_PATH=/usr/local/cuda-10.0/NsightCompute-1.0/host/linux-desktop-glibc_2_11_3-glx-x64/Plugins:$LD_LIBRARY_PATH
        LD_LIBRARY_PATH=/usr/local/cuda-10.0/NsightCompute-1.0/target/linux-desktop-glibc_2_11_3-glx-x64:$LD_LIBRARY_PATH
        LD_LIBRARY_PATH=/usr/local/cuda-10.0/targets/x86_64-linux/lib/stubs:$LD_LIBRARY_PATH

        PATH=/usr/local/gcc-7/bin:$PATH
        PATH=/usr/local/cuda-10.0/bin:$PATH
        PATH=$HOME/big/cuda.samples/NVIDIA_CUDA-10.0_Samples/bin/x86_64/linux/release:$PATH






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Dec 18 '18 at 8:18









        Douglas DaseecoDouglas Daseeco

        1,523814




        1,523814
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53344283%2fgcc-versions-later-than-7-are-not-supported-by-cuda-10-qt-error-in-arch-linux%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            List item for chat from Array inside array React Native

            Thiostrepton

            Caerphilly