Problems with compiling OgreOggSound

kurikaesu

26-08-2010 00:13:35

Since there are no dlls or libs provided in the precompiled version other than static ogg libs, I've tried to compile OgreOggSound myself.

I am using the Cthugha (1.7.1) release of Ogre using the "OGRE 1.7.1 SDK for MinGW" that has been: "Built for gcc 4.4; use the MinGW installer from http://www.tdragon.net/recentgcc/" (TDM-GCC)

I have built my own boost library with TDM-GCC (32 bit) as well as my own ogg and vorbis libs.
I'm now hitting a wall with regards to the linker complaining about EFX related issues even with EFX-util.lib added to the list of libraries.

Errors given are:
Cannot export ?MilliBelToLinearGain@@YAMM@Z: symbol not found
Cannot export ?MilliBelToLinearGain@@YAMM@Z: symbol not found
Cannot export ?efxtol@@YAJM@Z: symbol not found
Cannot export ?efxtol@@YAJM@Z: symbol not found
Cannot export ?log10@@YAMM@Z: symbol not found
Cannot export ?log10@@YAMM@Z: symbol not found
Cannot export ?pow@@YAMMM@Z: symbol not found
Cannot export ?pow@@YAMMM@Z: symbol not found

Anybody else have this problem?
I am guessing it's an incompatibility between the TDM-GCC compiler's idea of what the symbols should look like and the visual C++ compiled EFX-util.lib I'm trying to import?

stickymango

01-09-2010 10:22:00

I can only guess that thats the problem too, I don't use MinGW I'm afraid so not much help on the subject :oops:

crt32

07-09-2010 11:59:29

I solved this by just not linking against EFX-util.lib.
When searching google for EFX and MinGW you find a lot of people just giving up ;)

To make that work you have to replace the following lines with #if 0 (or define something like ENABLE_EFX and use that instead).
These lines will be #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 and as far as I see those #if..#endifs cover all of the EFX and xram related code
ogreoggsoundmanager.cpp: Lines 365 and 1090
OgreOggStaticSound.cpp: Line 107
OgreOggStaticWaveSound.cpp: Line 178
ogreoggstreamsound.cpp: Line 89
OgreOggStreamWavSound.cpp: Line 173

stickymango

07-09-2010 16:00:55

Shame thats the case but glad you got it sorted :)