Версии gcc позже 5 не поддерживаются при компиляции ethminer.

Вопрос или проблема

Важные вещи:

Здравствуйте, пользователи Ubuntu. Недавно я решил погрузиться в мир майнинга Ethereum и собрать ethminer самостоятельно. Однако после установки cuda я столкнулся с небольшой проблемой. При выполнении sudo cmake --build . после cmake .. -DETHASHCUDA=ON -DETHASHCL=OFF консоль выдала следующее:

[  0%] Собран целевой файл BuildInfo.h
[ 29%] Собран целевой файл devcore
[ 41%] Собран целевой файл ethash
[ 45%] Сборка объекта NVCC (Device) libethash-cuda/CMakeFiles/ethash-cuda.dir/ethash-cuda_generated_ethash_cuda_miner_kernel.cu.o
В файле, включенном из /usr/local/cuda/include/cuda_runtime.h:78:0,
                 из <command-line>:0:
/usr/local/cuda/include/host_config.h:119:2: ошибка: #error -- неподдерживаемая версия GNU! gcc версии выше 5 не поддерживаются!
 #error -- неподдерживаемая версия GNU! gcc версии выше 5 не поддерживаются!
  ^~~~~
Ошибка CMake в ethash-cuda_generated_ethash_cuda_miner_kernel.cu.o.Release.cmake:222 (сообщение):
  Ошибка при генерации
  /home/diamond/ethminer/build/libethash-cuda/CMakeFiles/ethash-cuda.dir//./ethash-cuda_generated_ethash_cuda_miner_kernel.cu.o

libethash-cuda/CMakeFiles/ethash-cuda.dir/build.make:63: рецепт для цели 'libethash-cuda/CMakeFiles/ethash-cuda.dir/ethash-cuda_generated_ethash_cuda_miner_kernel.cu.o' завершился неудачно
make[2]: *** [libethash-cuda/CMakeFiles/ethash-cuda.dir/ethash-cuda_generated_ethash_cuda_miner_kernel.cu.o] Ошибка 1
CMakeFiles/Makefile2:232: рецепт для цели 'libethash-cuda/CMakeFiles/ethash-cuda.dir/all' завершился неудачно
make[1]: *** [libethash-cuda/CMakeFiles/ethash-cuda.dir/all] Ошибка 2
Makefile:149: рецепт для цели 'all' завершился неудачно
make: *** [all] Ошибка 2

Дополнительная информация:

Я установил CUDA с помощью sudo apt install cuda. Он установил nvidia-275 и сам cuda (вместе с множеством других вещей)

Это решило мою проблему:

sudo rm /usr/local/cuda/bin/gcc
sudo rm /usr/local/cuda/bin/g++
sudo apt install gcc-5 g++-5
sudo ln -s /usr/bin/gcc-5 /usr/local/cuda/bin/gcc
sudo ln -s /usr/bin/g++-5 /usr/local/cuda/bin/g++

Ответ или решение

Проблема с компиляцией ethminer и поддерживаемыми версиями gcc

При компиляции программного обеспечения для майнинга Ethereum, такого как ethminer, пользователи часто сталкиваются с проблемами совместимости между версиями компилятора gcc и CUDA. В данной статье мы подробно разберем одну из распространенных ошибок, связанной с версиями gcc, и предложим решение.

Описание проблемы

Как показано в приведенном вами выводе компиляции, ошибка возникает в процессе компиляции файла ethash_cuda_miner_kernel.cu.o. Конкретно вы получаете следующее сообщение об ошибке:

#error -- unsupported GNU version! gcc versions later than 5 are not supported!

Это указывает на то, что установленная версия компилятора gcc превышает версию 5, что недопустимо для работы с CUDA. NVIDIA ограничивает использование более новых версий gcc, так как в них могут быть изменения, несовместимые с CUDA.

Почему возникают проблемы с совместимостью?

CUDA (Compute Unified Device Architecture) – это параллельная вычислительная платформа и API от NVIDIA, которая позволяет разработчикам использовать графические процессоры (GPU) для общих вычислений. Каждая версия CUDA имеет свою спецификацию, в которой указаны совместимые версии компилятора gcc. Например, для CUDA 10.2 по умолчанию поддерживается gcc до версии 5.0.

Проблема, с которой вы столкнулись, часто возникает после установки CUDA через пакетный менеджер apt, который может автоматически установить последние доступные версии gcc и g++, несовместимые с используемой версией CUDA.

Решение проблемы

В вашей ситуации было предложено следующее решение:

  1. Удаление текущих ссылок gcc и g++:

    sudo rm /usr/local/cuda/bin/gcc
    sudo rm /usr/local/cuda/bin/g++
  2. Установка совместимых версий gcc и g++:

    sudo apt install gcc-5 g++-5
  3. Создание символьных ссылок на установленные версии:

    sudo ln -s /usr/bin/gcc-5 /usr/local/cuda/bin/gcc
    sudo ln -s /usr/bin/g++-5 /usr/local/cuda/bin/g++

Эти команды позволят сделать gcc и g++ версии 5 доступными для использования в вашей среде CUDA. Проверьте результат выполнения команд и повторите процесс компиляции ethminer.

Заключение

Ошибки, связанные с несовместимостью версий компилятора и CUDA, являются распространенной проблемой среди разработчиков, работающих с технологиями NVIDIA. Следуя описанному решению, вы сможете успешно скомпилировать ethminer и продолжить путь в мир Ethereum-майнинга. Убедитесь, что вы регулярно проверяете документацию вашей версии CUDA для получения информации о совместимости с компиляторами.

Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться к сообществу или профессионалам в области компьютинга.

Оцените материал
Добавить комментарий

Капча загружается...