Link Errors

chaulky

14-02-2007 19:21:16

I followed the OgreAL install instructions in the forum and I am pretty sure I did everything right. I got the OgreAL visual studio projects to build fine. But when I try to run the first demo is says that it can't find MSVCP80D.dll. Is there some environment variable i may have missed somehow? I put in the OpenAL variable and the ALUT one as well. I used the Ogre SDK so it put in OGRE_HOME for me, i also added OGRE_SRC pointing to the same place since that's what you said it was called in the install sticky.

Also, when i tried to use OgreAL in my own program it started out saying that it couldn't find all the header files, which i thought the environment variables were supposed to take care of (i'm pretty new to C++, mostly used Java, so setting up all these variables is new to me and i may be thinking they work differently then they really do). I fixed that by adding the include directories to my VS project properties. But now i get link errors saying there are unresolved external symbols, looks like they all refer to OgreAL stuff.

Hopefully thats enough info for someone to have an idea of what i may need to do to fix this. I've looked through the forum to find similar problems but the solutions havent seemed to work.

O, and one thing it might be, CaseyB said in a post that you have to add ogrenew\samples\common... to the PATH variable, but i don't have a common folder in samples. In fact, i see "ogrenew" a lot in these forums, but i don't have that folder anywhere. I used the Dagon SDK, is that why?

Thanks for putting up with the noob questions, i appreciate the help.

Martins1

14-02-2007 20:30:59

Are you running the demo on the same computer, that
has the Visual Studio 2005?

CaseyB

14-02-2007 20:31:08

But when I try to run the first demo is says that it can't find MSVCP80D.dll. Is there some environment variable i may have missed somehow?MSVCP80D should be in your system path if you have Visual Studio 8 installed, that's not an OgreAL thing. Area you able to run the Ogre Demos?

i thought the environment variables were supposed to take care of ... I fixed that by adding the include directories to my VS project properties. But now i get link errors saying there are unresolved external symbols, looks like they all refer to OgreAL stuff.The environment variables just give you a short to refer to the point in your directory structure. I use them so that I can set up the OgreAL project files once and anyone can build them without messing with them. Adding the include paths was the right thing, now you need to add the paths in to tell the linker where to find the lib files to link against. If you look at the project properties in the Demos you'll see what this should look like. Under Properties->Linker->General->Additional Library Directories is where you'll need to set the library path and under Properties->Linker->Input->Additional Dependencies you'll need to add OgreAL.lib or OgreAL_d.lib based on the build target.

CaseyB said in a post that you have to add ogrenew\samples\common... to the PATH variable, but i don't have a common folder in samples. In fact, i see "ogrenew" a lot in these forums, but i don't have that folder anywhere. I used the Dagon SDK, is that why?Yup, that's why, ogrenew is the root folder when you are building from source. Also, when you are building from source, there is nothing that modifies your path or environment variables for you, hence needing to set things in your path and the OGRE_SRC environment variable. For those using the SDK, the installer modifies your path for you and sets the OGRE_HOME environment variable, so there is no need for you to touch your path or add the OGRE_SRC variable.

chaulky

14-02-2007 20:47:46

Nice, I got it, thanks for the help. I had been having problems adding the OgreAL_d.lib to additional dependencies. I had thought of that since the OgreMain gets added that way, i just didn't realize you weren't supposed to separate them with a ; which was givin me problems.

One more question since I have your attention.
I have a sound effect that plays whenever a ball bounces, but if it bounces again before the sound effect is done playing it skips it, is there anyway around that? So the sound could overlap itself?

<edit>
Oh, and the basic demo still won't run (the MSVSC dll thing still) but the other ones run fine (somehow forgot to change the plugins file), well not the multi channel cuz my sound card doesn't support it. I'm not to worried about it not running since it seems to be working in my program, but its still a little odd. Yes, its on the same computer with VS. I built everything today on the same computer. So i don't understand why it can't find it, especially if the other ones can.

chaulky

15-02-2007 17:13:22

OK, so i'm on a different computer today and i built OgreAL from the SVN for dagon this time.

My project builds fine, but when i go to run it it says that it can't find the OgreAL_d.dll or the OpenAL.dll

I'm pretty sure i set up everything like last time. I made the two system variables and added all the include/lib directories for ogreal, openal, ogg, and vorbis to my VS project. I added OgreAL_d.dll to my additional dependencies. I really don't understand why its not working.

Any ideas?

<edit>

Ok, i just copied the dll's into the OgreSDK\debug folder where my executable is and it worked so i must have put the folders in wrong somehow.

But now I get an assertion failure on exit. Is that something with the OgreAL svn version?

CaseyB

15-02-2007 17:54:43

Does the assertion dialog give ant helpful info?

chaulky

15-02-2007 17:58:57

Assertion failed!
Program: my program
File: d:\projects\dagon_clean\ogrenew\...\ogrelo...ger.cpp
Line: 40

Expression: ms_Singleton


Any of that help? No sure what the d:\projects..... is from, i used the sdk and i don't have a d drive.

<EDIT>

Nevermind, i got it. I was deleting my pointer to the SoundManager in a destructor, but it takes care of that for me huh?

CaseyB

15-02-2007 18:20:23

Did you actually install the SDK on this computer, or did you just copy it over?