CUDA несовместима с моей версией gcc

У меня проблемы с компиляцией некоторых примеров, поставляемых с CUDA SDK. Я установил драйвер разработчика (версия 270.41.19) и инструментарий CUDA, затем, наконец, SDK (обе версии 4.0.17).

Первоначально он вообще не компилировался, давая:

error -- unsupported GNU version! gcc 4.5 and up are not supported!

Я нашел ответственную строку в 81: /usr/local/cuda/include/host_config.h и изменил его на:

//#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4)
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 6)

с этого момента у меня есть только несколько примеров для компиляции, он заканчивается:

In file included from /usr/include/c++/4.6/x86_64-linux-gnu/bits/gthr.h:162:0,
             from /usr/include/c++/4.6/ext/atomicity.h:34,
             from /usr/include/c++/4.6/bits/ios_base.h:41,
             from /usr/include/c++/4.6/ios:43,
             from /usr/include/c++/4.6/ostream:40,
             from /usr/include/c++/4.6/iterator:64,
             from /usr/local/cuda/include/thrust/iterator/iterator_categories.h:38,
             from /usr/local/cuda/include/thrust/device_ptr.h:26,
             from /usr/local/cuda/include/thrust/device_malloc_allocator.h:27,
             from /usr/local/cuda/include/thrust/device_vector.h:26,
             from lineOfSight.cu:37:
/usr/include/c++/4.6/x86_64-linux-gnu/bits/gthr-default.h:251:1: error: pasting         "__gthrw_" and "/* Android's C library does not provide pthread_cancel, check for
`pthread_create' instead.  */" does not give a valid preprocessing token
make[1]: *** [obj/x86_64/release/lineOfSight.cu.o] Error 1

Поскольку некоторые из примеров компилируются, я считаю, что это не проблема драйвера, а скорее должно быть что-то для делать с неподдерживаемой версией gcc. Переход на более раннюю версию невозможен, поскольку на данный момент gcc4.6 имеет зависимость от всей системы ...

85
задан talonmies 2 December 2015 в 04:48
поделиться