Game Development Community

HEAD not compiling on VC++.NET

by Robert Taylor · in Torque Game Engine · 09/27/2003 (9:42 am) · 2 replies

This is because it can't find external functions for the ogg vorbis library. I've included "ogg_static.lib" and "vorbis_static_mt.lib" into the linker input list. But it still can't find these external functions. I then downloaded the Ogg Vorbis SDK and compiled them using VC++.NET with no problems. copied these libraries over, and included all of them (the static debug ones). Still didn't work.

Here is the error messages on linking:

Torque Demo error LNK2019: unresolved external symbol "public: static class AudioStreamSource * __cdecl AudioStreamSourceFactory::getNewInstance(char const *)" (?getNewInstance@AudioStreamSourceFactory@@SAPAVAudioStreamSource@@PBD@Z) referenced in function "class AudioStreamSource * __cdecl createStreamingSource(char const *)" (?createStreamingSource@@YAPAVAudioStreamSource@@PBD@Z)
Torque Demo error LNK2019: unresolved external symbol "public: int __thiscall OggVorbisFile::ov_clear(void)" (?ov_clear@OggVorbisFile@@QAEHXZ) referenced in function "private: bool __thiscall AudioBuffer::readOgg(class ResourceObject *)" (?readOgg@AudioBuffer@@AAE_NPAVResourceObject@@@Z)
Torque Demo error LNK2019: unresolved external symbol "public: __int64 __thiscall OggVorbisFile::ov_pcm_total(int)" (?ov_pcm_total@OggVorbisFile@@QAE_JH@Z) referenced in function "private: bool __thiscall AudioBuffer::readOgg(class ResourceObject *)" (?readOgg@AudioBuffer@@AAE_NPAVResourceObject@@@Z)
Torque Demo error LNK2019: unresolved external symbol "public: struct vorbis_info * __thiscall OggVorbisFile::ov_info(int)" (?ov_info@OggVorbisFile@@QAEPAUvorbis_info@@H@Z) referenced in function "private: bool __thiscall AudioBuffer::readOgg(class ResourceObject *)" (?readOgg@AudioBuffer@@AAE_NPAVResourceObject@@@Z)
Torque Demo error LNK2019: unresolved external symbol "public: int __thiscall OggVorbisFile::ov_open(class Stream *,char *,long)" (?ov_open@OggVorbisFile@@QAEHPAVStream@@PADJ@Z) referenced in function "private: bool __thiscall AudioBuffer::readOgg(class ResourceObject *)" (?readOgg@AudioBuffer@@AAE_NPAVResourceObject@@@Z)
Torque Demo error LNK2019: unresolved external symbol "public: __thiscall OggVorbisFile::~OggVorbisFile(void)" (??1OggVorbisFile@@QAE@XZ) referenced in function "private: bool __thiscall AudioBuffer::readOgg(class ResourceObject *)" (?readOgg@AudioBuffer@@AAE_NPAVResourceObject@@@Z)
Torque Demo error LNK2019: unresolved external symbol "public: __thiscall OggVorbisFile::OggVorbisFile(void)" (??0OggVorbisFile@@QAE@XZ) referenced in function "private: bool __thiscall AudioBuffer::readOgg(class ResourceObject *)" (?readOgg@AudioBuffer@@AAE_NPAVResourceObject@@@Z)
Torque Demo error LNK2019: unresolved external symbol "public: long __thiscall OggVorbisFile::ov_read(char *,int,int,int *)" (?ov_read@OggVorbisFile@@QAEJPADHHPAH@Z) referenced in function "private: long __thiscall AudioBuffer::oggRead(class OggVorbisFile *,char *,int,int,int *)" (?oggRead@AudioBuffer@@AAEJPAVOggVorbisFile@@PADHHPAH@Z)
Torque Demo fatal error LNK1120: 8 unresolved externals

#1
09/29/2003 (1:50 pm)
I've compiled the head with VC7...

Here is a link the the procject files if you'd like to try them... I make no claims as to whether its right or not but it worked for me. use at your own risk. Ogg vorbis works great!

www.gamebeavers.org/files/09_26_03vc7.zip
#2
09/29/2003 (1:53 pm)
Thanks. I managed to get it to compile using the VC6 project files. I had to remove some common libraries from the linker "input" list on "Torque Demo". But now it compiles fine.