Поиск:

Ответ в темуСоздание новой темы Создание опроса
> QtOpenCL как собрать 
V
    Опции темы
borisbn
Дата 16.11.2010, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Добрый день. Хочу использовать QtOpenCL под Windows.
Скачал QtOpenCL из http://qt.gitorious.org/qt-labs/opencl
Прочитал и сделал как в http://doc.qt.nokia.com/opencl-snapshot/building.html
а именно:
создал такой cmd-файл:
Код

set INCLUDE=%INCLUDE%;"C:\NVIDIA Corporation\NVIDIA GPU Computing SDK\OpenCL\common\inc"
set LIB=%LIB%;"C:\NVIDIA Corporation\NVIDIA GPU Computing SDK\OpenCL\common\lib\Win32"
qmake opencl.pro
nmake

выдаются ошибки: 
Цитата

NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

Если кто-нибудь сталкивался с подобным - плиз хелп.
Спасибо.

Это сообщение отредактировал(а) borisbn - 16.11.2010, 19:57


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Любитель
Дата 16.11.2010, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



И это всё? Выше ничего нету?!


--------------------
PM MAIL ICQ Skype   Вверх
borisbn
Дата 17.11.2010, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



есть, конечно, но там 1) IMHO что-то невразумительное 2) это - первое сообщение об ошибке. Завтра с утра отправлю ещё вывод nmake'а
кстати, забыл сказать, что если в студии открыть qtopencl.pro и откомпилировать, то debug'овая dll-ка собирается, а release'ная и ( самое главное ) документация - нет.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
borisbn
Дата 17.11.2010, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Делаю:
Код

nmake > nmake.err

Получаю (nmake.err):
Цитата

    cd src\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    cd opencl\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile.Debug
    cd openclgl\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile.Debug
    cd examples\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    cd opencl\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    cd vectoradd\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile.Debug
    cd blur\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile.Debug
    cd pathdrawing\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile.Debug
    cd imagedrawing\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile.Debug
    cd colorize\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile.Debug
    cd demos\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    cd mandelbrot\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile.Debug
    cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\4.6.3\include\QtCore" -I"c:\Qt\4.6.3\include\QtGui" -I"c:\Qt\4.6.3\include\QtOpenGL" -I"c:\Qt\4.6.3\include" -I"." -I"..\..\src\openclgl" -I"..\..\src\opencl" -I"c:\Qt\4.6.3\include\ActiveQt" -I"debug" -I"c:\Qt\4.6.3\mkspecs\default" -Fodebug\ @C:\WINDOWS\TEMP\nm39F.tmp
moc_glproxy.cpp
debug\moc_glproxy.cpp(44) : warning C4273: 'staticMetaObject' : inconsistent dll linkage
        e:\qt-opencl\demos\mandelbrot\debug\../glproxy.h(64) : see previous definition of 'public: static QMetaObject const QGLSignalProxy::staticMetaObject'
debug\moc_glproxy.cpp(44) : error C2491: 'QGLSignalProxy::staticMetaObject' : definition of dllimport static data member not allowed
debug\moc_glproxy.cpp(54) : warning C4273: 'QGLSignalProxy::metaObject' : inconsistent dll linkage
        e:\qt-opencl\demos\mandelbrot\debug\../glproxy.h(64) : see previous definition of 'metaObject'
debug\moc_glproxy.cpp(59) : warning C4273: 'QGLSignalProxy::qt_metacast' : inconsistent dll linkage
        e:\qt-opencl\demos\mandelbrot\debug\../glproxy.h(64) : see previous definition of 'qt_metacast'
debug\moc_glproxy.cpp(67) : warning C4273: 'QGLSignalProxy::qt_metacall' : inconsistent dll linkage
        e:\qt-opencl\demos\mandelbrot\debug\../glproxy.h(64) : see previous definition of 'qt_metacall'
debug\moc_glproxy.cpp(83) : warning C4273: 'QGLSignalProxy::aboutToDestroyContext' : inconsistent dll linkage
        e:\qt-opencl\demos\mandelbrot\debug\../glproxy.h(72) : see previous definition of 'aboutToDestroyContext'
    cd util\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    cd clinfo\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile.Debug
    cd mkblurtable\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile.Debug
    cd tests\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    cd auto\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    cd qcl\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile.Debug
    cd benchmarks\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    cd mandelbrot\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile.Debug
    cd overhead\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile
    "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile.Debug

А в консоль выводится:
Цитата

NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Любитель
Дата 17.11.2010, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Похоже, что у тебя для QGLSignalProxy dllimport/dllexport криво стоит. Раз в дебаге собирается - может там какие-то макросы для этого используются и дефайны криво стоят?


--------------------
PM MAIL ICQ Skype   Вверх
borisbn
Дата 17.11.2010, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Цитата(Любитель @  17.11.2010,  11:55 Найти цитируемый пост)
Похоже, что у тебя для QGLSignalProxy dllimport/dllexport криво стоит

похоже, но что это такое ( QGLSignalProxy ) и где ему выставлять dllimport/dllexport - не имею ни малейшего понятия. Сама Qt у меня нормально собирается.

Цитата(Любитель @  17.11.2010,  11:55 Найти цитируемый пост)
может там какие-то макросы для этого используются и дефайны криво стоят

честно говоря, не понял. где там и где дефайны криво стоят ?
я ведь просто делаю:
Код

qmake opencl.pro
nmake


P.S. Версия Qt 4.6.3

Это сообщение отредактировал(а) borisbn - 17.11.2010, 12:07


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Любитель
Дата 17.11.2010, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



В glproxy.h. В строке декларации класса QGLSignalProxy (у меня исходников нет - основываюсь только на твоих логах). Макрос для подстановки __declspec(dllexport) или __declspec(dllimport).


--------------------
PM MAIL ICQ Skype   Вверх
borisbn
Дата 17.11.2010, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Любитель, сейчас исходников под руками тоже нет, но думаю, что в классе QGLSignalProxy сделано что-то типа
Код

#if defined DO_EXPORT
    #define EXPORT_MACROS __declspec( dllexport )
#else
    #define EXPORT_MACROS __declspec( dllimport )
#endif
...
class EXPORT_MACROS QGLSignalProxy ...


но от этого не легче, т.к. макрос DO_EXPORT я ( IMHO ) не должен определять.
Смотри: я скачал библиотеку, сделал по документации билд - и получил ошибку. 
Следовательно - либо в makefil'е ошибка, либо я чего-то не досмотрел.
Думаю - второе, а что именно - хез.

Это сообщение отредактировал(а) borisbn - 18.11.2010, 07:52


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
borisbn
Дата 18.11.2010, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Посмотрел qlproxy.h:
Код

class Q_OPENGL_EXPORT QGLSignalProxy : public QObject
...

Q_OPENGL_EXPORT определяется в qtglobal.h как __declspec( dllexport ) если определён QT_BUILD_OPENGL_LIB
Вопрос: как в параметрах nmake'а определить define QT_BUILD_OPENGL_LIB ?
или м.б. не в параметрах nmake, а в переменных среды окружения ? или ещё как-то ?



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Любитель
Дата 18.11.2010, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



В общем:
1. У тебя не билдится одна из демок - может забить на неё и убить просто?
2. Экспорт не нужен точно. Там судя по коментам (в коде) ситуация такая, что вообще это внутренний класс QtOpenGL. Но в этой демке зачем-т решили им воспользоваться (что вообще говоря нехорошо). Для этого его импортируют.
3. Проблема в том, что: "definition of dllimport static data member not allowed". А статики берутся из-за того, что с одной стороны в файле есть Q_OBJECT, с другой - он прописан в хидерах (http://qt.gitorious.org/qt-labs/opencl/blobs/master/demos/mandelbrot/mandelbrot.pro), из-за чего на него запускается moc.

Итак, решения:
1. По пункту 1 - убить папку mandelbrot.
2. По пункту 3 - попробовать просто в mandelbrot.pro убить glproxy.h из хидеров (так как надо импортировать кутешную родную реализацию, а не билдить свою).
3. Но вообще по пункту 2 в этой демке использован грязный хак (использование не паблик АПИ). Строго говоря, с обновлением QtOpenGL демка может неожиданно сломаться совсем.


--------------------
PM MAIL ICQ Skype   Вверх
borisbn
Дата 18.11.2010, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Любитель, спасибо большое, но я уже дотыкался до mandelbrot.
Я импортировал opencl.pro в студию ( пришлось, правда, подобавлять include'ы и lib'ы от SDK NVIDIA вручную ) и там у меня только mandelbrot и не собрался. Я его просто unload'нул из solution'а и всё собралось.
Ещё раз спасибо. Тему закрываю.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0509 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.