crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Как прикрутить opencl к Qt Creator
Alex_K
  опции профиля:
сообщение 31.7.2010, 19:36
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 20.11.2009
Пользователь №: 1244

Спасибо сказали: 0 раз(а)




Репутация:   0  


Проблема: возникают ошибки при сборке opencl.pro - компилятор не может найти файлы Cl/cl.h Cl/cl_platform.h etc. Файлов этих в компе, если верить поисковику, действительно нет . Внимание вопрос: где их взять?
ОС Windows XP
Qt Creator 2.0
с библиотеками Qt 4.7.0 (beta 2)
а также
Qt opencl


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 31.7.2010, 21:13
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


а гуглить пробовал?)
хидерники опенсл можно на офф сайте khronos group скачать, ну а остальное барахло на сайтах производителя видеокарты для АТИ на developer.amd.com, для нвидии поищи
убедись что твоя видеокарта поддерживает опенсл, там же
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Alex_K
  опции профиля:
сообщение 31.7.2010, 21:36
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 20.11.2009
Пользователь №: 1244

Спасибо сказали: 0 раз(а)




Репутация:   0  


С этой проблемой уже разобрался. Скачал Ati Stream с вожделенными файлами...
Теперь другое:

error: invalid conversion from 'void (*)(const char*, const void*, size_t, void*)' to 'void (*)(const char*, const void*, size_t, void*)'

error: initializing argument 4 of '_cl_context* clCreateContext(const cl_context_properties*, cl_uint, _cl_device_id* const*, void (*)(const char*, const void*, size_t, void*), void*, cl_int*)'

Функция выглядит так:

d->id = clCreateContext
(props, devs.size(), devs.constData(),
qt_cl_context_notify, 0, &(d->lastError));
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 31.7.2010, 21:40
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


а что представляет собой символ qt_cl_context_notify?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Alex_K
  опции профиля:
сообщение 31.7.2010, 22:07
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 20.11.2009
Пользователь №: 1244

Спасибо сказали: 0 раз(а)




Репутация:   0  


В этом как раз и проблема Где оно там объявляется я пока не нашел Если поработать К.О. то можно предположить что это указатель на функцию...
(Приведенный код находится в qclcontext.cpp в моей версии 166-168 строки)

Вот объявляется оно так:

extern "C" {

static void qt_cl_context_notify(const char *errinfo,
const void *private_info,
size_t cb,
void *user_data)
{
Q_UNUSED(private_info);
Q_UNUSED(cb);
Q_UNUSED(user_data);
qWarning() << "OpenCL context notification: " << errinfo;
}

};

Сей код я не то чтобы понимаю, так что буду крайне благодарен, если мне объяснят что означает мыслеформа
extern "C".

Да, и еще, почему qt_cl_context_notify в предыдущем куске кода вызывается не как функция?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 31.7.2010, 22:44
Сообщение #6


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


Цитата
Сей код я не то чтобы понимаю, так что буду крайне благодарен, если мне объяснят что означает мыслеформа
extern "C".

это вопросы по с++, extern "C" - в двух словах: указывает что qt_cl_context_notify() можно использовать в программах на языке Си
А вообще советую покурить Липпман - С++ для начинающих
Да, и еще, почему qt_cl_context_notify в предыдущем куске кода вызывается не как функция?

потому что qt_cl_context_notify передается в функцию как указатель на функцию, курить ту же книжку - "указатели на функции"

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Alex_K
  опции профиля:
сообщение 31.7.2010, 23:10
Сообщение #7


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 20.11.2009
Пользователь №: 1244

Спасибо сказали: 0 раз(а)




Репутация:   0  


Книгу скачал, обязательно ознакомлюсь. Спасибо.
И все таки, нет ли идей чем вызваны ошибки

error: invalid conversion from 'void (*)(const char*, const void*, size_t, void*)' to 'void (*)(const char*, const void*, size_t, void*)'

error: initializing argument 4 of '_cl_context* clCreateContext(const cl_context_properties*, cl_uint, _cl_device_id* const*, void (*)(const char*, const void*, size_t, void*), void*, cl_int*)'

?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 31.7.2010, 23:25
Сообщение #8


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


у меня нету.
вообще, не понятно, это компилятор ошибки выдает или что? где код ошибки? и что вообще творится? :)
ты туториал какой то проходишь? если да, то какой? и что пытаешься сделать?
P.S а для спасибо есть кнопочга специальная ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Alex_K
  опции профиля:
сообщение 1.8.2010, 10:18
Сообщение #9


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 20.11.2009
Пользователь №: 1244

Спасибо сказали: 0 раз(а)




Репутация:   0  


+++вообще, не понятно, это компилятор ошибки выдает или что? где код ошибки? и что вообще творится? :)

Ошибки на этапе сборки. Насколько я понимаю негодует qmake.

+++ты туториал какой то проходишь? если да, то какой? и что пытаешься сделать?

Проходимый мною tutorial все еще называется "Прикрути qtopencl к qtcreator".

Что я пытаюсь сделать, - средствами qt creator собрать проект qtopencl.pro. Насколько я понимаю на выходе должна получиться библиотека которая куда-то там встроится и будет мне щастье в виде работающего opencl.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 13.8.2010, 14:07
Сообщение #10


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


попробовал компильнуть через Visual Studio и получаю похожую ошибку:
Цитата
.\qclcontext.cpp(169) : error C2664: 'clCreateContext' : cannot convert parameter 4 from 'void (__cdecl *)(const char *,const void *,size_t,void *)' to 'void (__stdcall *)(const char *,const void *,size_t,void *)' None of the functions with this name in scope match the target type


из ошибки видно что функции отличаются параметром __cdecl * и __stdcall *
в этом нужно разобраться или написать им баг репорт
з.ы насколько я понял ты идешь по этому руководству:
http://doc.qt.nokia.com/opencl-snapshot/building.html
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 4:43