Irrlicht and Visual C++ Express 2005
Irrlicht and Visual C++ Express 2005
I am trying to compile a simple Irrlicht program with VC++ Express 2005 and am having some difficulties. I am receiving an unresolved external on the call to createDevice.
Here's the error:
error LNK2019: unresolved external symbol __imp_?createDevice@irr@@YAPAVIrrlichtDevice@1@W4E_DRIVER_TYPE@video@1@ABV?$dimension2d@H@core@1@I_N22PAVIEventReceiver@1@PB_W@Z referenced in function _main
Here's the code:
IrrlichtDevice *device = createDevice(EDT_OPENGL, dimension2d<s32>(640, 480), 16, false);
I am using the library located in the Win32-VisualStudio directory of the Irrlicht 0.10.0 distribution. It is searching the library for the symbol, because when I change the name of the library file it complains that the file cannot be found. I have been able to compile working programs with both Dev-C++ and with C#.net express 2005 (using the irrlicht.net.lib).
Any ideas as to what the problem could be?
Here's the error:
error LNK2019: unresolved external symbol __imp_?createDevice@irr@@YAPAVIrrlichtDevice@1@W4E_DRIVER_TYPE@video@1@ABV?$dimension2d@H@core@1@I_N22PAVIEventReceiver@1@PB_W@Z referenced in function _main
Here's the code:
IrrlichtDevice *device = createDevice(EDT_OPENGL, dimension2d<s32>(640, 480), 16, false);
I am using the library located in the Win32-VisualStudio directory of the Irrlicht 0.10.0 distribution. It is searching the library for the symbol, because when I change the name of the library file it complains that the file cannot be found. I have been able to compile working programs with both Dev-C++ and with C#.net express 2005 (using the irrlicht.net.lib).
Any ideas as to what the problem could be?
-
- Posts: 33
- Joined: Sun Jun 26, 2005 4:41 pm
I don't have an answer to your problem, but i do have a warning...
A friend of mine found a paragraph in a license agreement that you have to agree to to distribute your programs and it said something to this effect (not quoted):
"All editions of the Visual Studio Express Suite will stop functioning on a date defined in each program. This includes all applications created by any of the Express edition programs."
In other words, you won't be able to run VC++ Express 2005 or the game you create with it.
Bummer... that's why I stopped using Visual Basic Express becuase there was really no point if I was going to have to dish out $600 to keep working.
Anyway, just a warning.
A friend of mine found a paragraph in a license agreement that you have to agree to to distribute your programs and it said something to this effect (not quoted):
"All editions of the Visual Studio Express Suite will stop functioning on a date defined in each program. This includes all applications created by any of the Express edition programs."
In other words, you won't be able to run VC++ Express 2005 or the game you create with it.
Bummer... that's why I stopped using Visual Basic Express becuase there was really no point if I was going to have to dish out $600 to keep working.
Anyway, just a warning.
-
- Posts: 33
- Joined: Sun Jun 26, 2005 4:41 pm
From the eula:
from NexusInteractive:
The closest I saw was:
But hey, I still think that DevC++ does a fine job, and Code::Blocks is arguably better with its ability to do multiple projects. There's two excellent open source IDEs for you.
They're at least complete enough to get you going.
PORTIONS OF THE SOFTWARE ARE DESIGNED TO CEASE FUNCTIONING ON MAY 1, 2006. OTHER PORTIONS OF THE SOFTWARE ARE DESIGNED TO CEASE FUNCTIONING 365 DAYS FROM THE DATE FIRST INSTALLED.
NOTICE OF EXPIRATION WILL NOT BE GIVEN, SO RECIPIENT NEEDS TO PLAN FOR THE EXPIRATION DATE AND REMOVE RECIPIENT’S DATA PRIOR TO SUCH EXPIRATION.
from NexusInteractive:
I found nothing about that.A friend of mine found a paragraph in a license agreement that you have to agree to to distribute your programs
The closest I saw was:
From what I've heard, the Express editions will be relatively cheap when (if) they come out of beta. Less than $100.Microsoft may freely use, disclose, reproduce, license, distribute and otherwise commercialize the Feedback
But hey, I still think that DevC++ does a fine job, and Code::Blocks is arguably better with its ability to do multiple projects. There's two excellent open source IDEs for you.
They're at least complete enough to get you going.
-
- Posts: 33
- Joined: Sun Jun 26, 2005 4:41 pm
yeah, the only reason I bothered actually reading it was because of this post
I only skim them to make sure I'm not agreeing to give up my first born child.
EDIT:: in reference to the original question in this thread, The only thing that I could guess (and this is truly a guess) is mayhaps irrlicht would need to be rebuilt with the express editions?
I haven't tried much with the express beta yet, but I'll see if I can find the time to give it a shot and see what happens.
I only skim them to make sure I'm not agreeing to give up my first born child.
EDIT:: in reference to the original question in this thread, The only thing that I could guess (and this is truly a guess) is mayhaps irrlicht would need to be rebuilt with the express editions?
I haven't tried much with the express beta yet, but I'll see if I can find the time to give it a shot and see what happens.
Holy Smokes
Well, I got Irrlicht running under the Express Beta 2
REAL pain in the ass, but I got it working OK.
So, "guest smr" (or anyone else) if your still around and interested, lemme know and I'll post a quick "how to"
peace
REAL pain in the ass, but I got it working OK.
So, "guest smr" (or anyone else) if your still around and interested, lemme know and I'll post a quick "how to"
peace
-
- Posts: 29
- Joined: Mon Jun 27, 2005 1:17 pm
Did you edit the corewin_express.vsprops file and delete the vccomponents.dat
file in addition to editing the config file?
http://lab.msdn.microsoft.com/express/v ... fault.aspx
file in addition to editing the config file?
http://lab.msdn.microsoft.com/express/v ... fault.aspx
"The creation of something new is not accomplished by the intellect but by the play instinct acting from inner necessity. The creative mind plays with the objects it loves."
Carl Jung
Carl Jung
I was gone for a bit.
So if you, or anyone else:
MS has a brief mention of this on their site, but here it is spelled out.
First thing you need if you don't already have it is the Microsoft Platform SDK
http://www.microsoft.com/downloads/deta ... laylang=en
Don't let the "2003 SP1 Platform SDK" bit throw you off...this is what you need.
It will install to C:\Program Files\Microsoft Platform SDK
Now, you would think you can just add the paths for include in the options dialogue...not so.
I really don't understand why, since it should just be adding a path like any other, however from the MS site:
The part that needs to be edited reads
However, you'll see in the MS note for Beta2, they don't tell you how it needs to be updated. Simple task you say? Well, it doesn't like using a full path to your Microsoft\Platform SDK\Include, nor any abbreviation that I caould figure out.
This was the point I was just going to give up in frustration.
Then I turned to ye Olde Google Search, and found others with the same thing happening, including from other game dev sites and forums.
And here is the only fix i could find...it shouldn't be this tough, but its the only way I've heard of anyone getting this to go correctly...
Notice in the config lines above it already mentions $(VCInstallDir) PlatformSDK\include, etc.?
Well, that is how it originally reads from first installing Express Beta2, but that Folder does not exist.
Go into your C:\Program Files\Microsoft Visual Studio 8\VC and create a folder called "PlatformSDK"
Go in to the MS Platform SDK you just installed, and COPY \Bin, \Include, and \Lib into the Folder you just created.
And that's it.
My best guess is they are planning to have all you need in one package with including the \Platform\SDK folder and its contents.
Why it won't let you set those paths in the project options, I have absolutely no idea, since it WILL recognize additional includes and libs for Irrlicht, et al.
Pain the butt, but it gets working.
So if you, or anyone else:
MS has a brief mention of this on their site, but here it is spelled out.
First thing you need if you don't already have it is the Microsoft Platform SDK
http://www.microsoft.com/downloads/deta ... laylang=en
Don't let the "2003 SP1 Platform SDK" bit throw you off...this is what you need.
It will install to C:\Program Files\Microsoft Platform SDK
Now, you would think you can just add the paths for include in the options dialogue...not so.
I really don't understand why, since it should just be adding a path like any other, however from the MS site:
Updating the "VCProjectEngine.dll.express.config" is not as easy as it sounds.For Beta 2, you cannot set the Visual C++ Directories in the Options dialog of Visual C++ Express Edition. To work around this issue, you can update the Visual C++ Directories by modifying the VCProjectEngine.dll.express.config file located in the \vc\vcpackages subdirectory of the Visual C++ Express Edition install location. Please make sure that you also delete the file "vccomponents.dat" located in the "%USERPROFILE%\Local Settings\Application Data\Microsoft\VCExpress\8.0" if it exists before restarting Visual C++ Express Edition.
The part that needs to be edited reads
Code: Select all
<Directories
Include="$(VCInstallDir)include;$(VCInstallDir)PlatformSDK\include;$(FrameworkSDKDir)include"
Library="$(VCInstallDir)lib;$(VCInstallDir)PlatformSDK\lib;$(FrameworkSDKDir)lib;$(VSInstallDir);$(VSInstallDir)lib"
Path="$(VCInstallDir)bin;$(VCInstallDir)PlatformSDK\bin;$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(FrameworkSDKDir)bin;$(FrameworkDir)$(FrameworkVersion);$(VSInstallDir);$(PATH)"
Reference="$(FrameworkDir)$(FrameworkVersion)"
Source="$(VCInstallDir)crt\src"
/>
This was the point I was just going to give up in frustration.
Then I turned to ye Olde Google Search, and found others with the same thing happening, including from other game dev sites and forums.
And here is the only fix i could find...it shouldn't be this tough, but its the only way I've heard of anyone getting this to go correctly...
Notice in the config lines above it already mentions $(VCInstallDir) PlatformSDK\include, etc.?
Well, that is how it originally reads from first installing Express Beta2, but that Folder does not exist.
Go into your C:\Program Files\Microsoft Visual Studio 8\VC and create a folder called "PlatformSDK"
Go in to the MS Platform SDK you just installed, and COPY \Bin, \Include, and \Lib into the Folder you just created.
And that's it.
My best guess is they are planning to have all you need in one package with including the \Platform\SDK folder and its contents.
Why it won't let you set those paths in the project options, I have absolutely no idea, since it WILL recognize additional includes and libs for Irrlicht, et al.
Pain the butt, but it gets working.
Bah I'm going to join this club too.
I tried compiling the HelloWorld example to make sure everything was working (since its pretty simple). I've got everything else all sqared away (I can compile other things with no problem), but am getting that same error:
main.obj : error LNK2019: unresolved external symbol __imp_?createDevice@irr@@YAPAVIrrlichtDevice@1@W4E_DRIVER_TYPE@video@1@ABV?$dimension2d@H@core@1@I_N22PAVIEventReceiver@1@PB_W@Z referenced in function _main
Now what I dont get is it is linking the library, because if I make it go away the standard error
LINK : fatal error LNK1104: cannot open file 'Irrlicht.lib'
appears.
Bah
EDIT:
not gonna bump this, just gonna edit it for now. found a couple solutions, posted them over in the bug fix forum (I'd copy them over but the forum is going REALLY slow right now >_< )
I tried compiling the HelloWorld example to make sure everything was working (since its pretty simple). I've got everything else all sqared away (I can compile other things with no problem), but am getting that same error:
main.obj : error LNK2019: unresolved external symbol __imp_?createDevice@irr@@YAPAVIrrlichtDevice@1@W4E_DRIVER_TYPE@video@1@ABV?$dimension2d@H@core@1@I_N22PAVIEventReceiver@1@PB_W@Z referenced in function _main
Now what I dont get is it is linking the library, because if I make it go away the standard error
LINK : fatal error LNK1104: cannot open file 'Irrlicht.lib'
appears.
Bah
EDIT:
not gonna bump this, just gonna edit it for now. found a couple solutions, posted them over in the bug fix forum (I'd copy them over but the forum is going REALLY slow right now >_< )