problems while compiling irrlicht under ubuntu edgy

If you are a new Irrlicht Engine user, and have a newbie-question, this is the forum for you. You may also post general programming questions here.
Belshamaroth
Posts: 24
Joined: Sun Apr 09, 2006 8:19 pm

problems while compiling irrlicht under ubuntu edgy

Post by Belshamaroth »

hello,
i switched to ubuntu.
but now i have a problem, with compiling the engine with code::blocks under this system. if i try to compile the file irrlicht_win32.cbp without commenting the windows configuration and setting #linux i get the error that the windows.h was not found - as i expected under linux ;-) but if i do the things mentioned above i get the following errors and i do not have any idea how to fix it (i searched the whole board for days... -.-)

Code: Select all

:: === Irrlicht, default ===
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1014: error: expected `)' before ‘*’ token
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1015: error: expected `)' before ‘*’ token
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1016: error: expected `)' before ‘*’ token
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1017: error: expected `)' before ‘*’ token
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1019: error: expected `)' before ‘*’ token
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1023: error: expected `)' before ‘*’ token
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1024: error: expected `)' before ‘*’ token
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1025: error: expected `)' before ‘*’ token
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1032: error: expected `)' before ‘*’ token
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1037: error: expected `)' before ‘*’ token
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1040: error: expected `)' before ‘*’ token
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1078: error: ‘png_error_ptr’ does not name a type
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1079: error: ‘png_error_ptr’ does not name a type
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1081: error: ‘png_rw_ptr’ does not name a type
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1082: error: ‘png_rw_ptr’ does not name a type
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1086: error: ‘png_user_transform_ptr’ does not name a type
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1090: error: ‘png_user_transform_ptr’ does not name a type
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1171: error: ‘png_flush_ptr’ does not name a type
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1207: error: ‘png_read_status_ptr’ does not name a type
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1208: error: ‘png_write_status_ptr’ does not name a type
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1210: error: ‘png_progressive_info_ptr’ does not name a type
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1211: error: ‘png_progressive_row_ptr’ does not name a type
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1212: error: ‘png_progressive_end_ptr’ does not name a type
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1275: error: ‘png_user_chunk_ptr’ does not name a type
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1370: error: expected initializer before ‘png_access_version_number’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1375: error: expected initializer before ‘png_set_sig_bytes’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1383: error: expected initializer before ‘png_sig_cmp’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1389: error: expected initializer before ‘png_check_sig’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1392: error: expected initializer before ‘png_create_read_struct’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1397: error: expected initializer before ‘png_create_write_struct’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1402: error: expected initializer before ‘png_get_compression_buffer_size’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1407: error: expected initializer before ‘png_set_compression_buffer_size’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1412: error: expected initializer before ‘png_reset_zstream’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1416: error: expectedanux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1420: error: expected initializer before ‘png_create_write_struct_2’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1427: error: expected initializer before ‘png_write_chunk’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1431: error: expected initializer before ‘png_write_chunk_start’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1435: error: expected initializer before ‘png_write_chunk_data’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1439: error: expected initializer before ‘png_write_chunk_end’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1442: error: expected initializer before ‘png_create_info_struct’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1446: error: expected initializer before ‘png_info_init’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1450: error: expected initializer before ‘png_info_init_3’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1454: error: expected initializer before ‘png_write_info_before_PLTE’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1456: error: expected initializer before ‘png_write_info’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1461: error: expected initializer before ‘png_read_info’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1466: error: expected initializer before ‘png_convert_to_rfc1123’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1474: error: expected initializer before ‘png_convert_from_struct_tm’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1478: error: expected initializer before ‘png_convert_from_time_t’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1485: error: expected initializer before ‘png_set_expand’
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/libpng/png.h:1486: error: expected initializer before ‘png_set_gray_1_2_4_to_8’
:: More errors follow but not being shown.
:: Edit the max errors limit in compiler options...
:: === Build finished: 50 errors, 0 warnings ===
i think i should have all libs linked correctly... so i dont know whats the problem.

thank you for help
jonas
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

Try to add #include <stdio.h> in CImageLoaderPNG.h before including the png headers.
Belshamaroth
Posts: 24
Joined: Sun Apr 09, 2006 8:19 pm

Post by Belshamaroth »

it makes no difference...
might be i use the wrong compile information in irrCompileConfig.h ...
but i dont know what i have to change as i used irrlicht only with windows before...

i just tried to compile it without the libpng and got this errors.... i cant get it... why does it have that probs???

Code: Select all

/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CColladaFileLoader.cpp:895: warning: ‘slot$Data’ may be used uninitialized in this function
../../include/irrAllocator.h:46: warning: ‘item$Outgoing’ is used uninitialized in this function
../../include/irrAllocator.h:46: warning: ‘item$Incoming’ is used uninitialized in this function
../../include/irrAllocator.h:46: warning: ‘item$Outgoing’ is used uninitialized in this function
../../include/irrAllocator.h:46: warning: ‘item$Incoming’ is used uninitialized in this function
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/BuiltInFont.h:27: warning: ‘packed’ attribute ignored
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CIrrDeviceLinux.h:32: error: X11/extensions/xf86vmode.h: No such file or directory
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CIrrDeviceLinux.h:261: error: ‘XF86VidModeModeInfo’ does not name a type
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CIrrDeviceLinux.h:213: warning: comparison between signed and unsigned integer expressions
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CIrrDeviceLinux.h:217: warning: comparison between signed and unsigned integer expressions
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CIrrDeviceLinux.cpp:122: error: ‘oldVideoMode’ was not declared in this scope
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CIrrDeviceLinux.cpp:122: error: ‘XF86VidModeSwitchToMode’ was not declared in this scope
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CIrrDeviceLinux.cpp:123: error: ‘XF86VidModeSetViewPort’ was not declared in this scope
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CIrrDeviceLinux.cpp:188: error: ‘XF86VidModeQueryExtension’ was not declared in this scope
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CIrrDeviceLinux.cpp:192: error: ‘XF86VidModeModeInfo’ was not declared in this scope
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CIrrDeviceLinux.cpp:192: error: ‘modes’ was not declared in this scope
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CIrrDeviceLinux.cpp:194: error: ‘XF86VidModeGetAllModeLines’ was not declared in this scope
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CIrrDeviceLinux.cpp:198: error: ‘oldVideoMode’ was not declared in this scope
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CIrrDeviceLinux.cpp:216: error: ‘XF86VidModeSwitchToMode’ was not declared in this scope
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CIrrDeviceLinux.cpp:217: error: ‘XF86VidModeSetViewPort’ was not declared in this scope
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CIrrDeviceLinux.cpp:659: warning: comparison between signed and unsigned integer expressions
/home/jonas/Linux/Daten/C++/irrlicht-1.2/source/Irrlicht/CIrrDeviceLinux.cpp:660: warning: comparison between signed and unsigned integer expressions
:: === Build finished: 12 errors, 10 warnings ===
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

You lack some x11 dev packages. So either disable xvidmode (hence loosing fullscreen mode) or install the necessary package.
Regarding the png problem it seems that some configuration is messed up for your system.
Belshamaroth
Posts: 24
Joined: Sun Apr 09, 2006 8:19 pm

Post by Belshamaroth »

ok thank you now ive got compiled it... but if i include the libirrlicht.a now i get these errors:

Code: Select all

:: === Test, Debug ===
CIrrDeviceLinux.cpp:(.text+0x191):: undefined reference to `XPutImage'
CIrrDeviceLinux.cpp:(.text+0x46b):: undefined reference to `XOpenDisplay'
CIrrDeviceLinux.cpp:(.text+0x4da):: undefined reference to `XGetVisualInfo'
CIrrDeviceLinux.cpp:(.text+0x511):: undefined reference to `XCloseDisplay'
CIrrDeviceLinux.cpp:(.text+0x53e):: undefined reference to `glXQueryExtension'
CIrrDeviceLinux.cpp:(.text+0x567):: undefined reference to `glXQueryVersion'
CIrrDeviceLinux.cpp:(.text+0x5c1):: undefined reference to `glXChooseVisual'
CIrrDeviceLinux.cpp:(.text+0x5f8):: undefined reference to `glXChooseVisual'
CIrrDeviceLinux.cpp:(.text+0x632):: undefined reference to `XCreateColormap'
CIrrDeviceLinux.cpp:(.text+0x6d2):: undefined reference to `XCreateWindow'
CIrrDeviceLinux.cpp:(.text+0x71c):: undefined reference to `XWarpPointer'
CIrrDeviceLinux.cpp:(.text+0x72e):: undefined reference to `XMapRaised'
CIrrDeviceLinux.cpp:(.text+0x760):: undefined reference to `XGrabKeyboard'
CIrrDeviceLinux.cpp:(.text+0x7a6):: undefined reference to `XGrabPointer'
CIrrDeviceLinux.cpp:(.text+0x815):: undefined reference to `XGetGeometry'
CIrrDeviceLinux.cpp:(.text+0x82f):: undefined reference to `XFree'
CIrrDeviceLinux.cpp:(.text+0x86b):: undefined reference to `XF86VidModeQueryExtension'
CIrrDeviceLinux.cpp:(.text+0x893):: undefined reference to `XF86VidModeGetAllModeLines'
CIrrDeviceLinux.cpp:(.text+0xa81):: undefined reference to `XCreateWindow'
CIrrDeviceLinux.cpp:(.text+0xaa0):: undefined reference to `XInternAtom'
CIrrDeviceLinux.cpp:(.text+0xac4):: undefined reference to `XSetWMProtocols'
CIrrDeviceLinux.cpp:(.text+0xad6):: undefined reference to `XMapRaised'
CIrrDeviceLinux.cpp:(.text+0xb57):: undefined reference to `XF86VidModeSwitchToMode'
CIrrDeviceLinux.cpp:(.text+0xb79):: undefined reference to `XF86VidModeSetViewPort'
CIrrDeviceLinux.cpp:(.text+0xb8b):: undefined reference to `XFree'
CIrrDeviceLinux.cpp:(.text+0xbdc):: undefined reference to `glXCreateWindow'
CIrrDeviceLinux.cpp:(.text+0xc14):: undefined reference to `glXCreateNewContext'
CIrrDeviceLinux.cpp:(.text+0xc3b):: undefined reference to `glXMakeContextCurrent'
CIrrDeviceLinux.cpp:(.text+0xc69):: undefined reference to `glXDestroyContext'
CIrrDeviceLinux.cpp:(.text+0xce1):: undefined reference to `XCreateImage'
CIrrDeviceLinux.cpp:(.text+0xd1f):: undefined reference to `glXCreateContext'
CIrrDeviceLinux.cpp:(.text+0xd40):: undefined reference to `glXMakeCurrent'
CIrrDeviceLinux.cpp:(.text+0xded):: undefined reference to `glXChooseFBConfig'
CIrrDeviceLinux.cpp:(.text+0xe07):: undefined reference to `XFree'
CIrrDeviceLinux.cpp:(.text+0xe23):: undefined reference to `glXGetVisualFromFBConfig'
CIrrDeviceLinux.cpp:(.text+0xe40):: undefined reference to `glXChooseVisual'
CIrrDeviceLinux.cpp:(.text+0xeb2):: undefined reference to `glXChooseFBConfig'
CIrrDeviceLinux.cpp:(.text+0xf11):: undefined reference to `glXChooseFBConfig'
CIrrDeviceLinux.cpp:(.text+0xf57):: undefined reference to `glXChooseFBConfig'
CIrrDeviceLinux.cpp:(.text+0xfc9):: undefined reference to `glXChooseFBConfig'
CIrrDeviceLinux.cpp:(.text+0x1014):: undefined reference to `glXChooseFBConfig'
CIrrDeviceLinux.cpp:(.text+0x2eaa):: undefined reference to `XPending'
CIrrDeviceLinux.cpp:(.text+0x2ed2):: undefined reference to `XNextEvent'
CIrrDeviceLinux.cpp:(.text+0x2f3f):: undefined reference to `XLookupString'
CIrrDeviceLinux.cpp:(.text+0x3174):: undefined reference to `XGetAtomName'
CIrrDeviceLinux.cpp:(.text+0x31b0):: undefined reference to `XRefreshKeyboardMapping'
CIrrDeviceLinux.cpp:(.text+0x350e):: undefined reference to `XSetStandardProperties'
CIrrDeviceLinux.cpp:(.text+0x35cc):: undefined reference to `glXMakeCurrent'
CIrrDeviceLinux.cpp:(.text+0x35e6):: undefined reference to `glXDestroyContext'
CIrrDeviceLinux.cpp:(.text+0x3627):: undefined reference to `XDestroyWindow'
:: More errors follow but not being shown.
:: Edit the max errors limit in compiler options...
:: === Build finished: 50 errors, 0 warnings ===
why? it seems to me as the whole compiling stuff was without effect as this is the same result that i get if i link the libirrlicht.a which is in the lib/linux/ directory
enalios
Posts: 4
Joined: Thu Feb 08, 2007 1:38 am

Post by enalios »

What exactly are you typing in the command line?

I had the same problem and what helped me was going into the Makefile of one of the examples and using hte same options for g++

so i use:

g++ -c test.cpp
g++ test.o -o test -L/tmp/irrlicht/lib/Linux -lirrlicht -lGl -lGLU -lXxf86vm -lXext -lX11

assuming you unzipped to the /tmp directory. Hope that helps.
Athlon_Jedi
Posts: 156
Joined: Wed Jul 21, 2004 4:29 am
Location: Mishawaka, In

Ubuntu????

Post by Athlon_Jedi »

you do realize Ubuntu isnt really ment for development right? im thinking its missing alot of the librarys and other misc stuff you need for a proper development environment under linux. i would maybe consider setting up a more development orented distro ( slackware, debian, gentoo perhaps) in dual boot or get rid of ubuntu all together.

not bashing ubuntu btw , its just not what i would use for development.
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

:shock: Ubuntu is basically an updated debian, so what's your point here? You simply add the same packages you would also need on debian and you're done :D
Athlon_Jedi
Posts: 156
Joined: Wed Jul 21, 2004 4:29 am
Location: Mishawaka, In

true but......

Post by Athlon_Jedi »

yes but ubuntu is also basicly a starter distro from what i know of it, one that noob use to get used to linux in general and if you dont know how to add packages and such , it would be a pain.

like i said, i have nothing against ubunto, just not my disro of choice for such things :lol:
Belshamaroth
Posts: 24
Joined: Sun Apr 09, 2006 8:19 pm

Post by Belshamaroth »

im glad that ur not such a noobish guy as me concerning the handling of linux athlon_jedi, but i didnt switch to linux because i want a "real professional" os but an alternative as im not willing to pay 80€ for a windows distribution... so this easy-to-go distribution called ubuntu is the best a "noob" as me could have. anyway, as hybrid said you can get every dev library for ubuntu because it is a debian distribution that has only been combined with a windows-like gnome-desktop and a easy-to-use packet manager. (synaptic).
anyway u really think of windows as an system for developing?? (with ubuntu i have a ca. 40% more stable system as every windows distribution i have had)

anyway... i have all the packets i need, even it is ubuntu, and they run very well. my problems are mainly the errors with the engine which cannot only be a result of wrong linking (there are ALL packets available).

in the moment im using dev c++ under wine but i know that is just a temporary solution and nothing for real developing.
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

The errors you wrote about are mostly missing package errors or wrong link errors. So which errors do you still face?
Belshamaroth
Posts: 24
Joined: Sun Apr 09, 2006 8:19 pm

Post by Belshamaroth »

ive found the error... the -lXxf86vm was in another linking dir than the x11 lib... so the compiler couldnt find it... i found the error while adding the libs step by step looking which lib was found (cb only shows one lib which is missing... so i couldnt find because it displayed me that the irrlicht lib was incorrect...)

its solved now thank you for your help! :)
eneru
Posts: 40
Joined: Tue Apr 10, 2007 8:38 am

Re: true but......

Post by eneru »

Athlon_Jedi wrote:yes but ubuntu is also basicly a starter distro from what i know of it, one that noob use to get used to linux in general and if you dont know how to add packages and such , it would be a pain.
as hybrid said, ubuntu is just as good as debian for developing, it misses no libraries nor misc stuff and it's no more difficult to add "packages and such" as it is exactly the same with debian...

Nevertheless, it's true that ubuntu runs better than any other you mentioned right after the installation, meaning it's great for new linuxians :) .. BUT that doesn't mean it's not good for more experienced users including developers, because it really is :P
ampanab
Posts: 4
Joined: Mon Apr 16, 2007 5:21 am

irrlicht problems

Post by ampanab »

hello,
I'm having problems compiling under ubuntu as well.
Here's what I did in my system. I followed the tutorials in setting up under linux. moved libirrlicht.a library to /usr/lib from the home folder
i did the makefile in one of the example successively but when I came back and makefile again it wouldn't allow it with the shell saying:
bash:Makefile:command not found
I also tried g++ Makefile -o makefile to see if it would produce something and yet nothing..though it did say some errors including irrlicht.h not found...would i have to link the include file under the irrlicht engine? is that what i'm missing? the funny thing is....is that under the g++ compiler i don't know how to link the file...any help is appreciated...
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

Makefile is not a command, it's used by the command 'make'
And compiling the Makefile with g++ does not make sense at all.
Post Reply