Release mode

netsurferj

24-08-2008 20:27:42

Hi

When I try to compile my project in release mode I get include errors. One of them is:
1>c:\physx\nxogre 0.9\include\NxOgrePrerequisites.h(303) : error C2146: syntax error : missing ';' before identifier 'NxThrow'

I included all the not _d libs with the same names as the _d libs.

I am using nxogre 0.9 with physX 2.7.3

I compiled NxOgre in release mode. Is it possible to compile a project made in 0.9 using release mode?

thanx

Prophet

24-08-2008 21:20:45

If you're using Visual there might be some properties that are not matching for debug/release (or at least, I had that problem). Compare "every" setting and check or differences. Mine were in the General section, I think.
Oh, and it is possible to compile and run under release. (I do it anyway)

netsurferj

25-08-2008 22:06:25

thanx, I changed the c++ general settings to the same as the debug settings, and added "WIN32;_RELEASE;_WINDOWS;" to the preprocessor definitions setting.

I compiles now, but I am getting linker errors, where things, like string, are "already defined"

I found this topic: http://www.ogre3d.org/phpBB2addons/viewtopic.php?t=7491&sid=ce193664e1d3d7c4af509e6f4e2718c6 in which fatpwnage said to "recompile the NxOgre library with a dynamically linked runtime library" instead of static.
I had a look at the NxOgre settings, and it is set to dll under configuration properties/general/configuration type, is there somewhere else I should set it to dynamic?

Prophet

25-08-2008 22:24:34

If you take a look where you normally change between Release and Debug, NxOgre has Debug, Debug_Static, Release, Release_Static and lastly Small. Might be what you're looking for.
I never got this problem, on the other hand I've always used dynamically. Hope this helps!

netsurferj

26-08-2008 13:40:05

hey, thanx for the reply.

I had a look, there are only options for debug and release. (I am using 0.9)

mcaden

26-08-2008 14:55:36

If a project compiles in debug, but not in release the problem every time in my experience has always always always been a project dependency.

The directory isn't set right, or a .lib is missing.

Keep in mind that a lot of times errors cascade. Always start from the first error thrown. One error on a dependency can cause dozens of errors in other classes or files.

Prophet

26-08-2008 15:23:17

Perhaps it's different in bleeding, I don't know.
Anway, as mcaden says, it might be the settings. I've had some strange errors under VC. Compare the General and Debugging settings. That's where I found the errors. Make sure they're the same. Yeah, I was wrong, I've had this problem, but not with NxOgre.

netsurferj

03-09-2008 11:35:51

I set all the settings the same to the debug settings (the ones that did not give errors) but I am still getting the string redefinition errors.

The libs I included are:
OgreMain.lib
OIS.lib
CEGUIBase.lib
OgreGUIRenderer.lib
odbc32.lib
odbccp32.lib
openal32.lib
alut.lib
PagedGeometry.lib
PhysXLoader.lib
NxCooking.lib
NxCharacter.lib
NxOgre.lib
Navi.lib
Astral.lib

If anyone knows how to solve this error, I would really appreciate it.

thanx

netsurferj

03-09-2008 11:50:35

Hey, sorry I always forget about the wiki.

I found this brilliant article:
http://www.ogre3d.org/wiki/index.php/BuildFAQ that helped a lot.

I just changed the c++/code generation/runtime library setting to Multi-Threaded DLL (/MD) and now it works, now I'm just struggling to find all the dlls to make it run :-)

thanx for all your help!

netsurferj

03-09-2008 12:31:30

hey

I have one dll error with coredll.dll. I donwloaded it from some arb websites but none of them works.

I am receiving the error: "The ordinal 1346 could not be located in the dynamic link library COREDLL.dll"

I searched for coredll.dll on my pc and found that assert.h uses this. I then searched for assert.h and found that this is used in NxAssert and many other nxogre files.

I would like to know where I could download a correct version of COREDLL.dll or some other way of fixing this error?

I am using vs8, thanx

betajaen

03-09-2008 12:34:50

I've never heard of "Coredll.dll", but assert is a function inbuilt into the C++ language headers, much like stdio.h, or the stl classes.

mcaden

03-09-2008 14:19:46

This sounds like the sort of thing where you're using visual studio 2005 without installing SP1.

netsurferj

03-09-2008 20:12:58

I have sp1 installed. All my research showed that it has something to do with windows CE. I am using Vista (am removing it as soon as I have time :-) ), don't know if this could be the problem?

When I try to run the exe, it asks for coredll.dll, and once that is there it asks for MMVCP70.dll and MMVCR70.dll, although I am using VS8. I have no idea if this is because I donwloaded an older version of coredll.dll.

thanx for the .22 release betajean!

netsurferj

03-09-2008 20:33:42

hey, another error solved, I was using the mobile version of msvcr80d.dll as explained on this forum: http://www.dotnetmonster.com/Uwe/Forum.aspx/dotnet-vc/9224/coredll-dll

I just had to download another version of msvcr80d.dll by searching for it.

thanx

now if I could only get my other manifest errors to go away

netsurferj

09-09-2008 20:42:41

Hi

I finally solved the problem. I am using navi to play swfs, and the incorrect dlls for navi caused my many problems. I compiled the navi demo in release and copied all the dlls and gecko folder to my release folder, and now it works!

I also compared my vs settings to those of an ogre demo's release mode.

thanx for all the replies.