Скомпилируйте ocl-icd2.1.3 в CentOS 6.3

#linux #opencl #centos6

#linux #opencl #centos6

Вопрос:

Я пытаюсь скомпилировать ocl-icd2.1.3 в CentOS 6.3, но получаю ошибку.

 ocl_icd_loader.c:40: error: expected [error|warning|ignored] after '#pragma GCC diagnostic'
ocl_icd_loader.c:41: error: unknown option after '#pragma GCC diagnostic' kind
ocl_icd_loader.c:44: error: expected [error|warning|ignored] after '#pragma GCC diagnostic'
In file included from ocl_icd_loader.h:31,
                 from ocl_icd_loader.c:48:
ocl_icd.h:32: error: expected [error|warning|ignored] after '#pragma GCC diagnostic'
ocl_icd.h:33: error: unknown option after '#pragma GCC diagnostic' kind
ocl_icd.h:41: error: expected [error|warning|ignored] after '#pragma GCC diagnostic'
In file included from ocl_icd_loader.c:50:
ocl_icd_debug.h:29: error: expected [error|warning|ignored] after '#pragma GCC diagnostic'
ocl_icd_debug.h:30: error: unknown option after '#pragma GCC diagnostic' kind
ocl_icd_debug.h:35: error: expected [error|warning|ignored] after '#pragma GCC diagnostic'
In file included from ocl_icd_loader.c:50:
ocl_icd_debug.h:69: error: expected [error|warning|ignored] after '#pragma GCC diagnostic'
ocl_icd_debug.h:72: error: expected [error|warning|ignored] after '#pragma GCC diagnostic'
make[2]: *** [libOpenCL_la-ocl_icd_loader.lo] Error 1
make[2]: se sale del directorio `/home/juliancho/Descargas/ocl-icd-2.1.3'
make[1]: *** [all-recursive] Error 1
make[1]: se sale del directorio `/home/juliancho/Descargas/ocl-icd-2.1.3'
make: *** [all] Error 2
  

пожалуйста, помогите мне.
Большое вам спасибо.

Комментарии:

1. Покажите строки, содержащие ошибки.

2. Хм, очень приятно, что вы нашли время поблагодарить меня, но где оскорбительные строки? Никто не сможет вам помочь, не увидев их.

3. ммм, извините меня, пожалуйста. Я перехожу к чтению, потому что я не понимаю оскорбительных строк. Спасибо. Я скоро напишу.

Ответ №1:

Ваш исходный код содержит строку типа

 #pragma GCC diagnostic push
  

Этот вид прагмы был представлен в GCC 4.6. Ваш выпуск gcc слишком стар, чтобы с ним справиться.

Вы можете:

  • обновите свой gcc
  • удалите -Wunknown-pragmas или эквивалентный файл из makefile
  • удалите -Werror или эквивалентный файл из makefile
  • удалите #pragma GCC diagnostic push , #pragma GCC diagnostic pop из исходного кода

но надежным является только первый вариант.

Комментарии:

1. Спасибо за вашу помощь. Я буду обновлять gcc. в следующий раз я напишу лучше о своих проблемах. Я обещаю. Я опишу свои результаты.

2. «Wmissing-prototypes»допустимо для C / Obj, но не для C [Включено по умолчанию]

3. Привет, я пытаюсь скомпилировать EmguCV, .Net-оболочку для OpenCV. Tks.

4. Не передавайте -Wmissing-prototypes компилятору при компиляции кода на C . Возможно, вам придется обернуть прагмы в пары #ifndef __cplusplus / #endif, чтобы отключить их для C . .Net — это не C . Неясно, как gcc может работать с .Net.

Ответ №2:

Вчера обновил gcc и теперь получил это:

Wmissing-prototypes "is valid for C / Obj but not for C [Enabled by default]