用Debug版本编译可以同过,用Release编译出现如下问题
正在链接...
正在创建库 ../../lib/fdrEngineR.lib 和对象 ../../lib/fdrEngineR.exp
cryptlib_r.lib(jzMyCrypt.obj) : error LNK2019: 无法解析的外部符号 "void __cdecl write_assert(char const *,...)" (?write_assert@@YAXPBDZZ) ,该符号在函数 "private: void __thiscall CJnDataPool<class CTestCrypt>::FreeData(class CTestCrypt *)" (?FreeData@[email protected]@@@@AAEXPAVCTestCrypt@@@Z) 中被引用
cryptlib_r.lib(jzMyCrypt.obj) : error LNK2019: 无法解析的外部符号 "char const * __cdecl LogDumpMemory(char const *,unsigned int)" (?LogDumpMemory@@[email protected]) ,该符号在函数 "public: void __thiscall CJnDataPool<class CTestCrypt>::CrashDump(class CTestCrypt *)" (?CrashDump@[email protected]@@@@QAEXPAVCTestCrypt@@@Z) 中被引用
cryptlib_r.lib(jzMyCrypt.obj) : error LNK2019: 无法解析的外部符号 "class CThreadMemAlloc * __cdecl GetMemMgrAlloc(unsigned int)" (?GetMemMgrAlloc@@YAPAVCThreadMemAlloc@@[email protected]) ,该符号在函数 "public: void __thiscall TObjMemAlloc<struct CSingleList<class CTestCrypt *,0>::tagSLINKEDLIST>::CheckMemMgr(void)" (?CheckMemMgr@[email protected]@[email protected]@@$0A@@@@@QAEXXZ) 中被引用
cryptlib_r.lib(jzMyCrypt.obj) : error LNK2019: 无法解析的外部符号 "void __cdecl InitThreadMemMgr(void)" (?InitThreadMemMgr@@YAXXZ) ,该符号在函数 "public: void __thiscall TObjMemAlloc<struct CSingleList<class CTestCrypt *,0>::tagSLINKEDLIST>::CheckMemMgr(void)" (?CheckMemMgr@[email protected]@[email protected]@@$0A@@@@@QAEXXZ) 中被引用
cryptlib_r.lib(jzMyCrypt.obj) : error LNK2001: 无法解析的外部符号 "class CThreadMemMgr * gtls_pThreadMemMgr" (?gtls_pThreadMemMgr@@3PAVCThreadMemMgr@@A)
cryptlib_r.lib(jzMyCrypt.obj) : error LNK2019: 无法解析的外部符号 "void * __cdecl MemAlloc(class CThreadMemAlloc *,void *)" (?MemAlloc@@YAPAXPAVCThreadMemAlloc@@[email protected]) ,该符号在函数 "public: struct CSingleList<class CTestCrypt *,0>::tagSLINKEDLIST * __thiscall TObjMemAlloc<struct CSingleList<class CTestCrypt *,0>::tagSLINKEDLIST>::AllocNode(void *)" (?AllocNode@[email protected]@[email protected]@@$0A@@@@@QAEPAUtagSLINKEDLIST@[email protected]@@$0A@@@[email protected]) 中被引用
cryptlib_r.lib(jzMyCrypt.obj) : error LNK2019: 无法解析的外部符号 "void __cdecl MemFree(class CThreadMemAlloc *,void *)" (?MemFree@@YAXPAVCThreadMemAlloc@@[email protected]) ,该符号在函数 "public: void __thiscall TObjMemAlloc<struct CSingleList<class CTestCrypt *,0>::tagSLINKEDLIST>::FreeNode(struct CSingleList<class CTestCrypt *,0>::tagSLINKEDLIST *)" (?FreeNode@[email protected]@[email protected]@@$0A@@@@@QAEXPAUtagSLINKEDLIST@[email protected]@@$0A@@@@Z) 中被引用
cryptlib_r.lib(jzMyCrypt.obj) : error LNK2019: 无法解析的外部符号 "unsigned long __cdecl jnexcep_filter(struct _EXCEPTION_POINTERS *)" (?jnexcep_filter@@YAKPAU_EXCEPTION_POINTERS@@@Z) ,该符号在函数 "public: int __thiscall CJnDataPool<class CTestCrypt>::PushData(class CTestCrypt *)" (?PushData@[email protected]@@@@QAEHPAVCTestCrypt@@@Z) 中被引用
cryptlib_r.lib(jzMyCrypt.obj) : error LNK2019: 无法解析的外部符号 "void __cdecl jnSetIsException(bool)" (?jnSetIsException@@[email protected]) ,该符号在函数 "public: int __thiscall CJnDataPool<class CTestCrypt>::PushData(class CTestCrypt *)" (?PushData@[email protected]@@@@QAEHPAVCTestCrypt@@@Z) 中被引用
cryptlib_r.lib(jzMyCrypt.obj) : error LNK2019: 无法解析的外部符号 "int __cdecl JnGetCurrentMemorySize(void)" (?JnGetCurrentMemorySize@@YAHXZ) ,该符号在函数 "private: void __thiscall CJnDataPool<class CTestCrypt>::InitData(int)" (?InitData@[email protected]@@@@[email protected]) 中被引用
../../run/fdrEngineR.dll : fatal error LNK1120: 10 个无法解析的外部命令
这是怎么回事呀?怎么解决呀?
------解决思路----------------------
write_assert等函数所在的库的lib文件在release版本下没有引入
你对比一下debug版本下的引入的lib文件吧
------解决思路----------------------
可能连接的库版本不是Release的
------解决思路----------------------
简单办法,你看debug模式项目属性和release模式项目属性 有什么不一样