Autor Wątek: Irrlicht błąd  (Przeczytany 3424 razy)

Offline TheWilfen

  • Użytkownik

# Luty 11, 2012, 12:29:10
Zaczynam zabawe z irrlicht na podstawie tego tutoriała:
http://cpp0x.pl/kursy/Kurs-Irrlicht-C++/Pierwsze-okno-3D/79

I kiedy chce zrobić puste okna wychodzi taki błąd:

C:/Users/Sebastian/Desktop/Moja Gra/NoteStar 3d/silnik/irrlicht-1.4beta/include/irrlicht.h:277:43: error: in passing argument 2 of 'irr::IrrlichtDevice* irr::createDevice(irr::video::E_DRIVER_TYPE, const irr::core::dimension2d<int>&, irr::u32, bool, bool, bool, irr::IEventReceiver*, const c8*)'

mingw32-make.exe: *** [main.o] Error 1

Execution terminated

Macie kod jakby co
#include <irrlicht.h>

using namespace irr;
using namespace core;
using namespace scene;
using namespace video;

int main()

{
    IrrlichtDevice * device = createDevice( EDT_OPENGL, core::dimension2d < u32 >( 800, 600 ),
    32, true, false, true, 0 );
   
    video::IVideoDriver * video = device->getVideoDriver();
    scene::ISceneManager * menage = device->getSceneManager();
    menage->addCameraSceneNode( 0, vector3df( 0, 30, - 40 ), vector3df( 0, 5, 0 ) );
   
    while( device->run() )
   
    {
        video->beginScene( true, true, video::SColor( 255, 0, 10, 200 ) );
        menage->drawAll();
        video->endScene();
    }
    device->drop();
    return 0;
}

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Kos

  • Użytkownik
    • kos.gd

# Luty 11, 2012, 12:43:52
hej, Trux! Podajesz dimension2d<u32> zamiast dimension2d<int>. Czytanie komunikatów o błędach to nie jest trudna rzecz!

Offline TheWilfen

  • Użytkownik

# Luty 11, 2012, 12:58:50
poprawiłem to co mówiłeś i nadal wyskakuje takie coś:
Compiler: MinGW GCC 4.6.2 32-bit
Building Makefile: "C:\Users\Sebastian\Desktop\Dev-Cpp\Makefile.win"
Executing  make...
mingw32-make.exe -f "C:\Users\Sebastian\Desktop\Dev-Cpp\Makefile.win" all
g++.exe -c main.cpp -o main.o -I"C:/Users/Sebastian/Desktop/Dev-Cpp/MinGW32/include"  -I"C:/Users/Sebastian/Desktop/Moja Gra/NoteStar 3d/silnik/irrlicht-1.4beta/include"  -I"C:/Users/Sebastian/Desktop/Moja Gra/NoteStar 3d/silnik/irrlicht-1.4beta"   

g++.exe main.o  -o "Project1.exe" -L"C:/Users/Sebastian/Desktop/Dev-Cpp/MinGW32/lib" -L"C:/Users/Sebastian/Desktop/Moja Gra/NoteStar 3d/silnik/irrlicht-1.4beta/include" -L"C:/Users/Sebastian/Desktop/Moja Gra/NoteStar 3d/silnik/irrlicht-1.4beta" -static-libstdc++ -static-libgcc -mwindows 

main.o:main.cpp:(.text+0x7b): undefined reference to `_imp___ZN3irr12createDeviceENS_5video13E_DRIVER_TYPEERKNS_4core11dimension2dIiEEjbbbPNS_14IEventReceiverEPKc'
collect2: ld returned 1 exit status

mingw32-make.exe: *** [Project1.exe] Error 1

Execution terminated

Offline Kos

  • Użytkownik
    • kos.gd

# Luty 11, 2012, 13:02:54
Nie zalinkowałeś biblioteki.

-L(nazwa) dodaje tylko ścieżkę do bibliotek i to ustawiłeś (chyba) dobrze, natomiast nie dodałeś flagi -l(nazwa) odpowiedzialnej za dolinkowanie samego irrlichta.

Sprawdź, jak się biblioteka nazywa- jeśli libirrlicht32.a, to dodaj -lirrlicht32 , jeśli libirrlicht.a, to po prostu -lirrlicht (widzisz zasadę). Jeśli używasz jakiegoś IDE, to zamiast flagi pewnie wystarczy dodać samo irrlicht do jakiegoś listboksa.

Offline TheWilfen

  • Użytkownik

# Luty 11, 2012, 13:19:48
dodałem libirrlicht.a ale wyskakuje koleny błąd z linkowaniem
Compiler: MinGW GCC 4.6.2 32-bit
Building Makefile: "C:\Users\Sebastian\Desktop\Dev-Cpp\Makefile.win"
Executing  make...
mingw32-make.exe -f "C:\Users\Sebastian\Desktop\Dev-Cpp\Makefile.win" all
g++.exe main.o  -o "Project1.exe" -L"C:/Users/Sebastian/Desktop/Dev-Cpp/MinGW32/lib" -L"C:/Users/Sebastian/Desktop/Moja Gra/NoteStar 3d/silnik/irrlicht-1.4beta/include" -L"C:/Users/Sebastian/Desktop/Moja Gra/NoteStar 3d/silnik/irrlicht-1.4beta" -L"C:/Users/Sebastian/Desktop/Moja Gra/NoteStar 3d/silnik/irrlicht-1.4beta/lib/Win32-gcc" -static-libstdc++ -static-libgcc -mwindows 

main.o:main.cpp:(.text+0x7b): undefined reference to `_imp___ZN3irr12createDeviceENS_5video13E_DRIVER_TYPEERKNS_4core11dimension2dIiEEjbbbPNS_14IEventReceiverEPKc'
collect2: ld returned 1 exit status

mingw32-make.exe: *** [Project1.exe] Error 1

Execution terminated
THX że pomagasz bo kiedyś byłem na forum i nikt nie chciał mi pomóc bo byli tylko clickerzy
« Ostatnia zmiana: Luty 11, 2012, 13:21:54 wysłana przez TheWilfen »

Offline wiedzmin112

  • Użytkownik

# Luty 11, 2012, 13:20:40
TheWilfen robię od 2 lat w irrlichcie chcesz to napisz na gg(zaraz ci wyśle na PW) to dam ci parę rad.

Offline Kos

  • Użytkownik
    • kos.gd

# Luty 11, 2012, 13:45:32
wkleiłeś drugi raz tego samego loga