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

Link Error Attempting to use Speech Codecs

mgarrettcallcopy_com
446 Views
I am running into problems in attempting to build some of the sample code from the:
ipp-samples\\speech-codecs\\uscmanual.pdf
I have built the solution:
ipp-samples\\speech-codecs\\application\\usc_speech_codec\\usc_speech_codec.sln
and have linked to the .lib files that are being built which are put in:
\\ipp-samples\\speech-codecs\\_bin\\Win32\\Release
The problem I am running into is getting this line to work properly:
extern USC_Fxns USC_G729I_Fxns;
USC_Fxns *USC_Gxxx_Fnxs = &USC_G729I_Fxns;
I keep getting link errors stating somethign to the effect of:
unresolved external symbol "struct USC_Fxns USC_G729I_Fxns"
I tried searching the forums for a resolution to this and came across this thread:
Which had a line that I tried here:
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.
I also tried the other suggestion on this thread:

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

Unfortunately, neither of these suggestions are working nor are any of the other things I've attempted to try. If someone could shed some light on this issue I would greatly appreciate their time and help. Thanks in advance.

Matt

0 Kudos
1 Solution
Ying_H_Intel
Employee
446 Views

Hi Matt,

Do you write the code in CPP file, right? The problem may neither the IPP version 6.1 or 5.3, nor linking the usc.lib (if you have linked the library by default in your msvc project). The problem is theconvention ofC and CPP languague.You may try
add the claim

extern "C" USC_Fxns USC_G729I_Fxns

In your code,
then the link error will gone.
Regards,
Ying H.

View solution in original post

0 Kudos
2 Replies
Ying_H_Intel
Employee
447 Views

Hi Matt,

Do you write the code in CPP file, right? The problem may neither the IPP version 6.1 or 5.3, nor linking the usc.lib (if you have linked the library by default in your msvc project). The problem is theconvention ofC and CPP languague.You may try
add the claim

extern "C" USC_Fxns USC_G729I_Fxns

In your code,
then the link error will gone.
Regards,
Ying H.

0 Kudos
mgarrettcallcopy_com
446 Views
Sorry for my late reply. Got side tracked off the project for a bit and am just now getting back to this. This resolved my issue as well as made me feel like an idiot for not having figured that out myself. Many thanks.
0 Kudos
Reply