Compile engine with Light Map Maker loader?

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.
Post Reply
neutral
Posts: 5
Joined: Sun Dec 18, 2005 11:59 am

Compile engine with Light Map Maker loader?

Post by neutral »

I'm trying to build Irrlicht14 with dhenton9000's Light Map Maker loader (thanks dhenton9000!).

The problem is this; after compiling the engine with the new LMMLoader.cpp and LMMLoader.h files I still get a 'unresolved symbol' when compiling a project that uses the new CLMMLoader class.

I am new to Visual Studio .net 2003 so I am thinking that my new engine build hasn't actually exported the new classes, but I can't see how to fix this.

This is what I have done so far

Built the Irrlicht14 engine unmodified (but without D3D8 & 9 support) using the .vcproj 71 file in the download. Compiles fine, and my basic test project runs with it.

Cleaned the solution.

Added the LMMLoader.cpp & LMMLoader.h files into the project under 'scene impl / loaders'

Built the project. This is ok, no errors. There is a LMMLoader.obj in the release folder, along with the Irrlicht.Lib, Irrlicht.Exp & Irrlicht.DLL files.

Moved the .Lib & .Exp to my new engine runtime LIB path (& checked there are no older versions of the files here). I'm using the same engine folder structure as official Irrlicht but starting with it empty & only copying in the headers and the new lib stuff.

Closed the engine build project. Opened my test app project and added the code to use the CLMMLoader.

Checked in tools->options-projects->vc++ dirs that the path to my new Irrlicht.Lib is set ok.

Run a build. Project compiles, but linking fails with a error LNK2019: unresolved external symbol for the CLMMLoader class.

The build log shows this as the linker command

/OUT:"Debug/lmmtest.exe" /INCREMENTAL /NOLOGO /LIBPATH:"F:\irrlicht\lib\Win32-VisualStudio" /DEBUG /PDB:"Debug/lmmtest.pdb" /SUBSYSTEM:CONSOLE /MACHINE:X86 irrlicht.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
.\Debug\lmmtest.obj
.\Debug\stdafx.obj

It looks like I'm compiling against the new .LIB (if I rename it compile stops with 'file not found error'), but the .LIB doesn't have the CLMMLOader stuff in it?

Can anyone tell me where to look next to fix this?

BTW, first post, so thanks to Niko and everyone in the community who makes Irrlicht what it is.
Guest

Post by Guest »

Ok, after trying various linker options I'm giving up on this for now. Its probably possible, but I'm just too stupid at the moment.

Using dh9k's code directly in the test app works, sort of. Using the demo object ('beta.irr') one of the lightmap bitmaps loads but doesn't display on some triangles. Don't know if this is a 0.14 compatability issue.
afecelis
Admin
Posts: 3075
Joined: Sun Feb 22, 2004 10:44 pm
Location: Colombia
Contact:

Post by afecelis »

you'll do better using it as an external loader while and if it's decided to be merged into the main source.

That's how it has been before for my3d, lmtools, cshop, deled and some other lightmapping options. They all started out as external loaders and finally made it into the source (with a lot of interaction between their creators and Niko) :wink:
neutral
Posts: 5
Joined: Sun Dec 18, 2005 11:59 am

Post by neutral »

Ok, now I see, thanks.

I've just read through the whole :lol: of the MIM creation thread which gives a lot of background to the whole lightmap material loaders situation.

BTW dh9k's loader works fine with 0.14, just me being stupid. I thought I'd copied over all the lightmaps, but I hadn't.
Post Reply