LINK2019错误分析

来源:互联网 发布:沈阳seo关键词 编辑:程序博客网 时间:2024/06/16 12:04

警告与错误信息如下:

1>ReadCard.obj : warning LNK4197: 多次指定导出“CRW_Open”;使用第一个规范

1>ReadCard.obj : warning LNK4197: 多次指定导出“CRW_Close”;使用第一个规范
1>ReadCard.obj : warning LNK4197: 多次指定导出“CRW_Initialize”;使用第一个规范
1>ReadCard.obj : warning LNK4197: 多次指定导出“CRW_Enable”;使用第一个规范
1>ReadCard.obj : warning LNK4197: 多次指定导出“CRW_Disable”;使用第一个规范
1>ReadCard.obj : warning LNK4197: 多次指定导出“CRW_GetStatus”;使用第一个规范
1>ReadCard.obj : warning LNK4197: 多次指定导出“CRW_Eject”;使用第一个规范
1>ReadCard.obj : warning LNK4197: 多次指定导出“CRW_Hold”;使用第一个规范
1>ReadCard.obj : warning LNK4197: 多次指定导出“CRW_Capture”;使用第一个规范
1>ReadCard.obj : warning LNK4197: 多次指定导出“CRW_GetTrack”;使用第一个规范
1>ReadCard.obj : warning LNK4197: 多次指定导出“CRW_PowerOn”;使用第一个规范
1>ReadCard.obj : warning LNK4197: 多次指定导出“CRW_PowerOff”;使用第一个规范
1>ReadCard.obj : warning LNK4197: 多次指定导出“CRW_Get_55Filed”;使用第一个规范
1>     正在创建库 E:\程序源码\ReadCard\x64\Debug\ReadCard.lib 和对象 E:\程序源码\ReadCard\x64\Debug\ReadCard.exp
1>ReadCard.obj : error LNK2019: 无法解析的外部符号 "long __cdecl A6_Connect(unsigned long,unsigned long,unsigned __int64 *)" (?A6_Connect@@YAJKKPEA_K@Z),该符号在函数 CRW_Open 中被引用
1>ReadCard.obj : error LNK2019: 无法解析的外部符号 "long __cdecl A6_Disconnect(unsigned __int64)" (?A6_Disconnect@@YAJ_K@Z),该符号在函数 CRW_Close 中被引用
1>ReadCard.obj : error LNK2019: 无法解析的外部符号 "long __cdecl A6_Initialize(unsigned __int64,unsigned char,char *,unsigned long *)" (?A6_Initialize@@YAJ_KEPEADPEAK@Z),该符号在函数 CRW_Initialize 中被引用
1>ReadCard.obj : error LNK2019: 无法解析的外部符号 "long __cdecl A6_PermitInsertion(unsigned __int64,int)" (?A6_PermitInsertion@@YAJ_KH@Z),该符号在函数 CRW_Enable 中被引用
1>ReadCard.obj : error LNK2019: 无法解析的外部符号 "long __cdecl A6_DenieInsertion(unsigned __int64)" (?A6_DenieInsertion@@YAJ_K@Z),该符号在函数 CRW_Disable 中被引用
1>ReadCard.obj : error LNK2019: 无法解析的外部符号 "long __cdecl A6_GetCRStatus(unsigned __int64,unsigned char *)" (?A6_GetCRStatus@@YAJ_KPEAE@Z),该符号在函数 CRW_GetStatus 中被引用
1>ReadCard.obj : error LNK2019: 无法解析的外部符号 "long __cdecl A6_MoveCard(unsigned __int64,unsigned char)" (?A6_MoveCard@@YAJ_KE@Z),该符号在函数 CRW_Eject 中被引用
1>ReadCard.obj : error LNK2019: 无法解析的外部符号 "long __cdecl A6_ReadTracks(unsigned __int64,unsigned char,unsigned int,struct _TRACKINFO *)" (?A6_ReadTracks@@YAJ_KEIPEAU_TRACKINFO@@@Z),该符号在函数 CRW_GetTrack 中被引用
1>ReadCard.obj : error LNK2019: 无法解析的外部符号 "long __cdecl A6_CpuActivate(unsigned __int64,unsigned char,unsigned char *,unsigned char *,unsigned long *)" (?A6_CpuActivate@@YAJ_KEPEAE1PEAK@Z),该符号在函数 CRW_PowerOn 中被引用
1>ReadCard.obj : error LNK2019: 无法解析的外部符号 "long __cdecl A6_CpuDeactivate(unsigned __int64)" (?A6_CpuDeactivate@@YAJ_K@Z),该符号在函数 CRW_PowerOff 中被引用
1>E:\程序源码\ReadCard\x64\Debug\ReadCard.dll : fatal error LNK1120: 10 个无法解析的外部命令

1>


出现上述问题首先需要考虑的就是动态调用与静态调用的问题。根据调用方式查找问题出现的原因。

当上述方法均没有解决上述问题的时候,需要考虑是否是解决方案平台的问题,在x86和x64之间切换后再次编译看是否能解决问题。


tips:上述问题程序源自同事编译通过的程序,在我再次编译的时候出现的问题。当确定程序没问题的情况下,优先考虑是否是x86平台的程序用x64再次编译导致的错误。

原创粉丝点击