Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Qt Creator как IDE не для Qt
Форум на CrossPlatform.RU > Библиотеки > Другие библиотеки
RazrFalcon
Есть вопрос на тему использование Creator'a для сборки PhysX(Bullet)/Ogre(Irrlicht) приложений.
Изначально все делалось на VS 2008 Pro но она платная (Express не подходит так как обязательна поддержка х64).
1) как скомпилировать в Creator'е х64 приложение (и возможно ли это вообще)
2) скомпилировать хоть что то пока не вышло так как после линковки и окончания сборки вылазит знакомое -107....и тд., не на что не ругается.
3) слышал что MinGW не поддерживать .dll и .lib скомпилированы на студии, а так как все выше указное скорее всего там и скомпилировано то это возможно вероятная проблема.
Litkevich Yuriy
Цитата(RazrFalcon @ 22.6.2010, 23:27) *
1) как скомпилировать в Creator'е х64 приложение (и возможно ли это вообще)
вроде он проекты на основе CMake поддерживает, но я не пробовал.
Цитата(RazrFalcon @ 22.6.2010, 23:27) *
3) слышал что MinGW не поддерживать .dll и .lib скомпилированы на студии
смотря как скомпилированы, например клиентскую библиотеку Firebird он понимает, хотя она и создана в студии.
Плюс есть инструмент позволяющий преобразовывать библиотеку студии к виду MinGW32, ищи по форуму по ключу "reimp"
RazrFalcon
Спасибо за огромное количество инфы прочитаной из-за reimp, но как оказалось это не решение проблемы <_<
1) если в .pro будет LIBS += "C:\Irrlicht.lib" то все нормально компилируется но:
Error - RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly
RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly
.....my.exe завершился с кодом -1073741819
и говорит "Прекращена работа программы. Закрыть программу"
или
 .....my.exe завершился с кодом 1
в зависимости от примера (шли вместе с движком).
2) если LIBS += Irrlicht.lib (тот же что и на С: только в C:\Qt\qt\lib) то выскакивает 356 ошибок типа
Irrlicht.lib(Irrlicht.obj)::-1: error: undefined reference to `_imp__glTexEnvi@12'

3) ну и вообще без либа не компилится просто, не находит функции которые я использую, ну это логично.

PS все "media" файлы находятся вместе с ехе, так что сомневаюсь что проблема в этом
+ Irrlicht.dll в котором наверное и проблема, может ли ехе не видеть функции из .dll сделанного скорее всего в студии?
+ все что запускал в креаторе 100% работает в студии

PSS во 2-м пункте переделал на LIBS += -lIrrlicht ошибки пропали, но теперь тоже что и в 1)
Litkevich Yuriy
вообще Qt creator тут не причём.
название темы должно быть : "Как использовать стороннюю DLL в Qt-проекте"
И подобная тема уже есть
RazrFalcon
Цитата(Litkevich Yuriy @ 24.6.2010, 12:18) *
вообще Qt creator тут не причём.
название темы должно быть : "Как использовать стороннюю DLL в Qt-проекте"
И подобная тема уже есть

Ладно...
Тогда можно ли ссылку на тему.
Я просто с начала думал что вина в линковке либов, ну а если и dll не виноват тогда уже и не знаю что делать.
Litkevich Yuriy
Цитата(RazrFalcon @ 24.6.2010, 16:04) *
PSS во 2-м пункте переделал на LIBS += -lIrrlicht ошибки пропали, но теперь тоже что и в 1)
тогда попробуй запустить своё приложение не в креаторе, а в консоли, каков будет результат?

Цитата(RazrFalcon @ 24.6.2010, 16:53) *
Тогда можно ли ссылку на тему.
тем несколько и все они об одном, по сути просто названия подбные "как собрать MySQL плагин?" и т.п. А суть одна - линковка к проекту библиотек собранных студией
RazrFalcon
Цитата(Litkevich Yuriy @ 24.6.2010, 13:47) *
тогда попробуй запустить своё приложение не в креаторе, а в консоли, каков будет результат?
Ничего, вообще ничего. клацнул и все, даже окшко не появилось, возможно проблема в коде <_< , даже не знаю, попробую что то другое подключить, PhysX в частности, с ним я думаю проблем будет навалом.

Цитата(Litkevich Yuriy @ 24.6.2010, 13:47) *
"как собрать MySQL плагин?"
Ну... таких тем я прочитал навалом, только либы я и так могу подключать.
Litkevich Yuriy
Цитата(RazrFalcon @ 24.6.2010, 18:00) *
Ничего, вообще ничего. клацнул и все, даже окшко не появилось,
если сборка отладочная, то запусти в консоли, наверняка Qt туда, что-нибудь напечатает
RazrFalcon
Цитата(Litkevich Yuriy @ 24.6.2010, 14:11) *
если сборка отладочная, то запусти в консоли, наверняка Qt туда, что-нибудь напечатает

ааа понял
Error - RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly
RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly
.....my.exe завершился с кодом -1073741819
Это?

или это
Сигнал: SIGSEGV
Назначение: Segmentation fault
после
IVideoDriver* driver = device->getVideoDriver();
Litkevich Yuriy
RazrFalcon, ты напиши полностью, что ты видишь в консоли, не креатора, после того как напишешь:
myprogramm.exe
и нажмёшь <Enter>
RazrFalcon
Цитата(Litkevich Yuriy @ 24.6.2010, 15:18) *
RazrFalcon, ты напиши полностью, что ты видишь в консоли, не креатора, после того как напишешь:
myprogramm.exe
и нажмёшь <Enter>

<_< не люблю я консоли и пользоваться ими тоже не очень хорошо умею.
У меня вин7 поэтому запускал через cmd. Ничего не было в ней. Прогу выбило сразу и опять стандартная надпись (C:\user и тд)
Litkevich Yuriy
Цитата(RazrFalcon @ 24.6.2010, 20:01) *
запускал через cmd
это и есть консоль в виндах.
RazrFalcon
Цитата(Litkevich Yuriy @ 24.6.2010, 17:05) *
Цитата(RazrFalcon @ 24.6.2010, 20:01) *
запускал через cmd
это и есть консоль в виндах.

Это я знаю. Что же теперь делать?
Litkevich Yuriy
Цитата(RazrFalcon @ 24.6.2010, 22:47) *
Что же теперь делать?
ну, видимо пришла пора показывать код :)
что там в функции main? можешь попробовать qDebug() навтыкать, посмотреть, что видно в консоли
RazrFalcon
Цитата(Litkevich Yuriy @ 24.6.2010, 18:58) *
ну, видимо пришла пора показывать код :)

Дебаг в креторе 2.0 выдал ошибку 0xc0000135, что как я понял отпосылка на Net.Framework, только он тут при чем.
А код сам банален до простого
Раскрывающийся текст
#include <irrlicht.h>

using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;

int main()
{
        IrrlichtDevice *device = createDevice( video::EDT_OPENGL, dimension2d<u32>(640, 480), 16,false, false, false, 0);
        if (!device)
                return 1;

        device->setWindowCaption(L"Hello World! - Irrlicht Engine Demo");

        IVideoDriver* driver = device->getVideoDriver();
        ISceneManager* smgr = device->getSceneManager();
        IGUIEnvironment* guienv = device->getGUIEnvironment();

        IAnimatedMesh* mesh = smgr->getMesh("sydney.md2");
        if (!mesh)
        {
                device->drop();
                return 1;
        }
        IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( mesh );

        if (node)
        {
                node->setMaterialFlag(EMF_LIGHTING, false);
                node->setMD2Animation(scene::EMAT_STAND);
                node->setMaterialTexture( 0, driver->getTexture("sydney.bmp") );
        }

        smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));

        while(device->run())
        {
            driver->beginScene(true, true, SColor(255,100,101,140));
            smgr->drawAll();
            guienv->drawAll();
            driver->endScene();
        }
        device->drop();
        return 0;
}

В дебаге на этом IVideoDriver* driver = device->getVideoDriver(); уже вылетает
В папке с ехе лежит sydney.bmp, sydney.md2 и Irrlicht.dll и libgcc_s_dw2-1.dll
Это пример урока который шел вместе с двигом и на студии работает нормально только что проверял.

PS нашел примеры подключения движка, но через QGlWindget, что не совсем то, но уже точно значит что должен работать.
Litkevich Yuriy
вопрос: Этот проект вообще использует Qt или нет?
RazrFalcon
Цитата(Litkevich Yuriy @ 24.6.2010, 21:21) *
вопрос: Этот проект вообще использует Qt или нет?

Нет вообще, мне нужна тока IDE и mingw, что б замена студии была, без платная + возможность компиляции на линукс.
Litkevich Yuriy
ну тогда эта тема не законно сидит в подфоруме Qt.
RazrFalcon
Цитата(Litkevich Yuriy @ 24.6.2010, 21:51) *
ну тогда эта тема не законно сидит в подфоруме Qt.

Согласен, не подумал. Ну я пока все равно так и не разобрался, так что буду пробовать.
Litkevich Yuriy
попробуй в Dependency Wallker свою программу запустить (меню "Profiling"), может там что-то прояснится. Он иногда помогает, т.к. ведёт лог загрузки ПО и dll'ок
RazrFalcon
До Profiling, уже при открытии файла
Error: Modules with different CPU types were found.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
IESHIMS.dll    Error opening file.
SYSNTFY.dll    Error opening file.

И в логе Profiling
Раскрывающийся текст
GetProcAddress(0x71DA0000 [ATIGLPXX.DLL], "DrvSwapMultipleBuffers") called from "OPENGL32.DLL" at address 0x6F6DAE89 and returned NULL. Error:     (127).
GetProcAddress(0x75760000 [GDI32.DLL], "D3DKMTWaitForsynchronizationObject2") called from "ATICFX32.DLL" at address 0x6F7D08DF and returned NULL. Error:     (127).
GetProcAddress(0x75760000 [GDI32.DLL], "D3DKMTChangeSurfacePointer") called from "ATICFX32.DLL" at address 0x6F7D0AA6 and returned NULL. Error:     (127).
LoadLibraryA("atiadlxx.dll") returned NULL. Error:     (126).
GetProcAddress(0x75760000 [GDI32.DLL], "D3DCloseAdapter") called from "ATIADLXY.DLL" at address 0x0056094A and returned NULL. Error:     (127).
GetProcAddress(0x75760000 [GDI32.DLL], "D3DCloseAdapter") called from "ATIADLXY.DLL" at address 0x0056094A and returned NULL. Error:     (127).
GetProcAddress(0x75760000 [GDI32.DLL], "D3DCloseAdapter") called from "ATIADLXY.DLL" at address 0x0056094A and returned NULL. Error:     (127).
GetProcAddress(0x75760000 [GDI32.DLL], "D3DCloseAdapter") called from "ATIADLXY.DLL" at address 0x0056094A and returned NULL. Error:     (127).
GetProcAddress(0x75760000 [GDI32.DLL], "D3DCloseAdapter") called from "ATIADLXY.DLL" at address 0x0056094A and returned NULL. Error:     (127).
GetProcAddress(0x75760000 [GDI32.DLL], "D3DCloseAdapter") called from "ATIADLXY.DLL" at address 0x0056094A and returned NULL. Error:     (127).
GetProcAddress(0x75760000 [GDI32.DLL], "D3DCloseAdapter") called from "ATIADLXY.DLL" at address 0x0056094A and returned NULL. Error:     (127).
Second chance exception 0xC0000005 (Access Violation) occurred in "HMM.EXE" at address 0x00401476.
Exited "HMM.EXE" (process 0xA8) with code -1073741819 (0xC0000005).
и это под светилось в "дереве"
GPSVC.dll    Error opening file.
IESHIMS.dll    Error opening file.
ATIADLXX.dll    Error opening file.
Потом скинул gpsvc.dll IEShims.dll sysntfy.dll ничего не изменилось, разве что ошибка эта ищезла "Warning: At least one delay-load dependency module was not found."

PS GPSVC.dll и IESHIMS.dll пишуься при открытие любого ехе.
PSS пробовал другие примеры, бывает что программа завершилась с кодом 1, но ничего не происходило вообще, и depends говорит что все нормально, при том что в некоторых примерах говорит что есть ошибки, написанные выше.
PSSS при LIBS += "C:\libirrlicht.a" вообще ужос
Раскрывающийся текст
Выполняется сборка проекта Hmm...
Запускается: c:/qt/qt/bin/qmake.exe D:/Additional/Hmm/Hmm.pro -spec win32-g++ -r
Завершено с кодом 0.
Запускается: C:/Qt/mingw/bin/mingw32-make.exe -w
mingw32-make: Entering directory `D:/Additional/Hmm'
C:/Qt/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `D:/Additional/Hmm'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"c:\Qt\qt\include\QtCore" -I"c:\Qt\qt\include\QtGui" -I"c:\Qt\qt\include" -I"c:\Qt\qt\include\ActiveQt" -I"debug" -I"c:\Qt\qt\mkspecs\win32-g++" -o debug\new.o new.cpp
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\Hmm.exe debug/new.o -L"c:\Qt\qt\lib" -lmingw32 -lqtmaind C:\libirrlicht.a -lQtGuid4 -lQtCored4
C:\libirrlicht.a: file not recognized: File truncated
collect2: ld returned 1 exit status
mingw32-make[1]: Leaving directory `D:/Additional/Hmm'
mingw32-make: Leaving directory `D:/Additional/Hmm'
mingw32-make[1]: *** [debug\Hmm.exe] Error 1
mingw32-make: *** [debug] Error 2
Завершено с кодом 2.
Ошибка во время сборки проекта Hmm
Во время выполнения сборки на этапе 'Make'
Может надо в свойствах проекта что то изменить.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.