当前位置:编程学习 > wap >>

error LNK2019: 无法解析的外部符号

AudioCode.obj : error LNK2019: 无法解析的外部符号 va_g729a_init_decoder,该符号在函数 "public: __cdecl CAudioCode::CAudioCode(void)" (??0CAudioCode@@QAA@XZ) 中被引用
AudioCode.obj : error LNK2019: 无法解析的外部符号 va_g729a_init_encoder,该符号在函数 "public: __cdecl CAudioCode::CAudioCode(void)" (??0CAudioCode@@QAA@XZ) 中被引用
AudioCode.obj : error LNK2019: 无法解析的外部符号 va_g729a_encoder,该符号在函数 "public: int __cdecl CAudioCode::EncodeAudioData(char *,int,char *,int *)" (?EncodeAudioData@CAudioCode@@QAAHPADH0PAH@Z) 中被引用
AudioCode.obj : error LNK2019: 无法解析的外部符号 va_g729a_decoder,该符号在函数 "public: int __cdecl CAudioCode::DecodeAudioData(char *,int,char *,int *)" (?DecodeAudioData@CAudioCode@@QAAHPADH0PAH@Z) 中被引用

现在lib库我也引用了,可是不知道为什么不行,我在网上也查了关于这个的问题,只看到有人提问,没有看到有解答的~~~
那位大侠帮帮忙~~急 --------------------编程问答--------------------

#include "stdafx.h"
#include "AudioCode.h"

extern "C" void va_g729a_init_encoder();
extern "C" void va_g729a_encoder(short *speech, unsigned char *bitstream);
extern "C" void va_g729a_init_decoder();
extern "C" void va_g729a_decoder(unsigned char *bitstream, short *synth_short, int bfi);
#define  L_FRAME_COMPRESSED 10
#define  L_FRAME            80

CAudioCode::CAudioCode()
{
va_g729a_init_encoder();
va_g729a_init_decoder();
}

CAudioCode::~CAudioCode()
{
}

BOOL CAudioCode::EncodeAudioData(char *pin,int len,char* pout,int* lenr)
{
BOOL bRet=FALSE;
if(!pin||len!=SIZE_AUDIO_FRAME||!pout)
goto RET;

va_g729a_encoder((short*)pin,(BYTE*)pout);
va_g729a_encoder((short*)(pin+160),(BYTE*)pout+10);
va_g729a_encoder((short*)(pin+320),(BYTE*)pout+20);
va_g729a_encoder((short*)(pin+480),(BYTE*)pout+30);
va_g729a_encoder((short*)(pin+640),(BYTE*)pout+40);
va_g729a_encoder((short*)(pin+800),(BYTE*)pout+50);

if(lenr)
*lenr=SIZE_AUDIO_PACKED;

bRet=TRUE;
RET:
return bRet;
}

BOOL CAudioCode::DecodeAudioData(char *pin,int len,char* pout,int* lenr)
{
BOOL bRet=FALSE;
if(!pin||len!=SIZE_AUDIO_PACKED||!pout)
goto RET;

va_g729a_decoder((BYTE*)pin,(short*)(pout),0);
va_g729a_decoder((BYTE*)pin+10,(short*)(pout+160),0);
va_g729a_decoder((BYTE*)pin+20,(short*)(pout+320),0);
va_g729a_decoder((BYTE*)pin+30,(short*)(pout+480),0);
va_g729a_decoder((BYTE*)pin+40,(short*)(pout+640),0);
va_g729a_decoder((BYTE*)pin+50,(short*)(pout+800),0);

if(lenr)
*lenr=SIZE_AUDIO_FRAME;

bRet=TRUE;
RET:
return bRet;
}
--------------------编程问答-------------------- 你的lib有头文件引用吗?
何不在这个cpp里面直接#include 这一组va_g729a_xxx的函数头文件试试看?
感觉这里的extern "C"好像没有找到申明的源文件一样 --------------------编程问答--------------------
引用 2 楼 hhygcy 的回复:
你的lib有头文件引用吗?
 何不在这个cpp里面直接#include 这一组va_g729a_xxx的函数头文件试试看?
 感觉这里的extern "C"好像没有找到申明的源文件一样

主要是现在同样的代码在pc端没有问题,可我现在要把这些代码移植到mobile里,现在就出现这个错误 --------------------编程问答-------------------- 平台环境是不一样的 --------------------编程问答--------------------
引用 4 楼 wyfwx 的回复:
平台环境是不一样的

这个我知道,所以我现在想知道的是这个语音的G729a的东东能不能用在mobile上,我在网上看到好多的mobile开发的也用的用的是G729a,也有这样的错误,就是不知道怎么解决 --------------------编程问答-------------------- --------------------编程问答-------------------- 没有哪位大侠能帮帮我吗? --------------------编程问答-------------------- 楼主 你得代码里面没看到#pragma comment(lib, "?")
你是不是在ide里面链接这个lib的? --------------------编程问答--------------------
引用 8 楼 thgifcat 的回复:
楼主 你得代码里面没看到#pragma comment(lib, "?")
 你是不是在ide里面链接这个lib的?

发代码的时候没有加,后来加上去了。
现在我个人的感觉是,好像我手里的G729的lib库不支持mobile,我从网上找G729的源码好像不支持mobile,哪位大侠有呢?没有源码,lib库也可以啊~~~急啊 --------------------编程问答-------------------- 没有人吗? --------------------编程问答-------------------- 就没有人来啊!!!!!!!没人就不结贴了!!!!!!!! --------------------编程问答-------------------- 如果还有哪位高手路过,看见了,能不能指点一下,链接时出现的LNK2019:无法解析的外部符号,LIB确认添加无误,函数的声明和定义也没有错误,程序是为了验证一个例子从网上COPY下的,可是无论怎么试就是链接错误,急啊!
补充:移动开发 ,  Windows Phone
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,