Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

G729 Codec in VC++ 2003 Link problem

impala455
Beginner
598 Views

Hello. I am attempting to build a sample application to decode G729 in Visual Studio 2003 in C++, using the evaluation version. The samples from Intel show to declare an extern in order to access the functions. I cannot seem to get it to link properly. Here is the linkererror I get:

error LNK2001: unresolved external symbol "struct USC_Fxns USC_G729I_Fxns" (?USC_G729I_Fxns@@3UUSC_Fxns@@A)

And here is what I'm doing:

extern

USC_Fxns USC_G729I_Fxns;

USC_Fxns *USC_Gxxx_Fnxs = &USC_G729I_Fxns;

0 Kudos
5 Replies
Ying_S_Intel
Employee
598 Views

Dear Customer,

You may need to link the usc.lib from ipp-samplesspeech-codecsinwin32lib , this library is generated after building the USC sample. The USC_G729I_Fxnsis defined in the uscg729i.c file, which contains in usc.lib.

Hope it helps and if you still have questions, please submit a support issue in Intel Premier Support.

Thanks,
Ying

0 Kudos
newbie2009
Beginner
598 Views
I'm having the same issue as well; Here's the list of the errors I get:

pjmedia_codec_wince.lib(ipp_codecs.obj) : error LNK2001: unresolved external symbol USC_G722_Fxns
pjmedia_codec_wince.lib(ipp_codecs.obj) : error LNK2001: unresolved external symbol USC_G728_Fxns
pjmedia_codec_wince.lib(ipp_codecs.obj) : error LNK2001: unresolved external symbol USC_G726_Fxns
pjmedia_codec_wince.lib(ipp_codecs.obj) : error LNK2001: unresolved external symbol USC_G723_Fxns
pjmedia_codec_wince.lib(ipp_codecs.obj) : error LNK2001: unresolved external symbol USC_G729I_Fxns
pjmedia_codec_wince.lib(ipp_codecs.obj) : error LNK2001: unresolved external symbol USC_AMRWB_Fxns
pjmedia_codec_wince.lib(ipp_codecs.obj) : error LNK2001: unresolved external symbol USC_GSMAMR_Fxns


I included usc.lib and its folder's path within the project settings.

How can I solve these errors?

Regards.
0 Kudos
D_S_
Beginner
598 Views
Quoting - impala455

Hello. I am attempting to build a sample application to decode G729 in Visual Studio 2003 in C++, using the evaluation version. The samples from Intel show to declare an extern in order to access the functions. I cannot seem to get it to link properly. Here is the linkererror I get:

error LNK2001: unresolved external symbol "struct USC_Fxns USC_G729I_Fxns" (?USC_G729I_Fxns@@3UUSC_Fxns@@A)

And here is what I'm doing:

extern

USC_Fxns USC_G729I_Fxns;

USC_Fxns *USC_Gxxx_Fnxs = &USC_G729I_Fxns;



The real reason for your error is that the sample code in the USC manual is incorrect.
extern USC_Fxns USC_G729I_Fxns is not needed anymore in IPP 6.0
It will cause an error.
Use &USC_G729I_Fxns directly.

You also need to add at the top:
#include "usc.h"
#include "usc_objects_decl.h"

You also need to define in your build:
_USC_G729 if you want to only use this codec.
or
_USC_CODECS if you plan to use all of the codecs.

See usc_objects_decl.h for other defines.
0 Kudos
tcorp1
Beginner
598 Views
Hello. Easiest way to correct it is to write the code:

extern "C" USC_Fxns USC_G729I_Fxns;

USC_Fxns *USC_Gxxx_Fnxs = &USC_G729I_Fxns;

After that everything will be ok.
Regards,Ron
0 Kudos
Ying_H_Intel
Employee
598 Views
Hi Ron,

Thanks a lot for the sharing.

Yes, it is easiest solution.
see http://integration-software.intel.com/en-us/forums/showthread.php?t=77076

Regards,
Ying
0 Kudos
Reply