- 1.fwtj\Code-->fwtj\OmSDK
- 2.编译fwtj\OmSDK工程,生成fwtj\Publish0 \
- 3.将fwtj\OmSDK中所有Include中的文件都copy到fwtj\Publish\Include中
- 4.编译fwtj\NetSDK
- 5.编译fwtj\GmSDK
- (1).编译fwtj\GmSDK\Code\GmaEffect工程出现如下连接问题:
- 正在链接...
- 正在创建库 ..\..\Publish\Lib\GmaEffect.lib 和对象 ..\..\Publish\Lib\GmaEffect.exp' N/ _3 I3 [4 U0 u' M5 U) y
- ExecutorMng.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::AddPrev(unsigned long)" (?AddPrev@CPrevLoadingMng@@QAEXK@Z) ,该符号在函数 "public: void __thiscall CPrevLoadingMng::AddPrev(void)" (?AddPrev@CPrevLoadingMng@@QAEXXZ) 中被引用
- GmaEffectPlayer.obj : error LNK2001: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::AddPrev(unsigned long)" (?AddPrev@CPrevLoadingMng@@QAEXK@Z)
- ExecutorMng.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::IsLoaded(unsigned long)" (?IsLoaded@CPrevLoadingMng@@QAEXK@Z) ,该符号在函数 "public: void __thiscall CPrevLoadingMng::IsLoaded(void)" (?IsLoaded@CPrevLoadingMng@@QAEXXZ) 中被引用
- GmaEffectPlayer.obj : error LNK2001: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::IsLoaded(unsigned long)" (?IsLoaded@CPrevLoadingMng@@QAEXK@Z)
- ExecutorMng.obj : error LNK2019: 无法解析的外部符号 "public: static class CPrevLoadingMng * CPrevLoadingMng::m_pLoadingMng" (?m_pLoadingMng@CPrevLoadingMng@@2PAV1@A) ,该符号在函数 "class CPrevLoadingMng * __cdecl GetLoadingMng(void)" (?GetLoadingMng@@YAPAVCPrevLoadingMng@@XZ) 中被引用
- GmaEffectPlayer.obj : error LNK2019: 无法解析的外部符号 "public: static class CPrevLoadingMng * CPrevLoadingMng::m_pLoadingMng" (?m_pLoadingMng@CPrevLoadingMng@@2PAV1@A) ,该符号在函数 "public: virtual void __thiscall CRuleFrame::SetRuleID(int)" (?SetRuleID@CRuleFrame@@UAEXH@Z) 中被引用
- ExecutorMng.obj : error LNK2019: 无法解析的外部符号 "public: int __thiscall CPrevLoadingMng::IsTimeOut(void)" (?IsTimeOut@CPrevLoadingMng@@QAEHXZ) ,该符号在函数 "public: virtual long __thiscall CExecutorMng::Build(class CGmaEffectBase *,class CRuleSet *,class CMeshAniMng *,class CGmaEffectLib *,int,class Gfx3D::CSkeletonAni *,class CTrailResLib *,unsigned long,class CTextureMng *,struct IDirect3DDevice8 *,class CGmaEffectPlayer *)" (?Build@CExecutorMng@@UAEJPAVCGmaEffectBase@@PAVCRuleSet@@PAVCMeshAniMng@@PAVCGmaEffectLib@@HPAVCSkeletonAni@Gfx3D@@PAVCTrailResLib@@KPAVCTextureMng@@PAUIDirect3DDevice8@@PAVCGmaEffectPlayer@@@Z) 中被引用2 c8 d& F$ m2 a) \8 C( Z+ X4 C
- GmaEffectPlayer.obj : error LNK2001: 无法解析的外部符号 "public: int __thiscall CPrevLoadingMng::IsTimeOut(void)" (?IsTimeOut@CPrevLoadingMng@@QAEHXZ)" \9 b7 H& G( Z4 L
- GmaEffectPlayer.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::AddData(unsigned long,unsigned long)" (?AddData@CPrevLoadingMng@@QAEXKK@Z) ,该符号在函数 "public: long __thiscall CGmaEffectPlayer::Build(class CMeshAniMng *,class CGmaEffectLib *,unsigned long,int,class Gfx3D::CSkeletonAni *,class CTrailResLib *,unsigned long,class CTextureMng *,struct IDirect3DDevice8 *)" (?Build@CGmaEffectPlayer@@QAEJPAVCMeshAniMng@@PAVCGmaEffectLib@@KHPAVCSkeletonAni@Gfx3D@@PAVCTrailResLib@@KPAVCTextureMng@@PAUIDirect3DDevice8@@@Z) 中被引用
- GmaEffectPlayer.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng:oadBegin(void)" (?LoadBegin@CPrevLoadingMng@@QAEXXZ) ,该符号在函数 "public: long __thiscall CGmaEffectPlayer::Build(class CMeshAniMng *,class CGmaEffectLib *,unsigned long,int,class Gfx3D::CSkeletonAni *,class CTrailResLib *,unsigned long,class CTextureMng *,struct IDirect3DDevice8 *)" (?Build@CGmaEffectPlayer@@QAEJPAVCMeshAniMng@@PAVCGmaEffectLib@@KHPAVCSkeletonAni@Gfx3D@@PAVCTrailResLib@@KPAVCTextureMng@@PAUIDirect3DDevice8@@@Z) 中被引用- `) j3 U" ]. d# O G) _1 A1 z
- ..\..\Publish\Dll\GmaEffect.dll : fatal error LNK1120: 6 个无法解析的外部命令
- 生成日志保存在“file://f:\Downloads\fwtj\GmSDK\Temp\Release\GmaEffect\BuildLog.htm”中
- GmaEffect - 11 错误,0 警告8 ?6 e- l6 K( Y" @2 T: p' G) k
- //解决:3 s5 Y% O, z- j" T& |
- 将fwtj\GmSDK\Code\GmaEffect\Include和fwtj\GmSDK\Code\GmaEffect\Sources中的PrevLoading.h/cpp加入到GmaEffect工程中) G/ t7 }/ E2 E0 w2 h$ V
- (2).编译fwtj\GmSDK\Code\NetServer出错:' {3 E7 E- n! T) L, d. W, Z
- SrvrGS.cpp: S; v9 L, l& n6 t$ s+ C
- f:\Downloads\fwtj\GmSDK\Code\NetServer\Include\SrvrER.h(234) : fatal error C1083: 无法打开包含文件:“EasyRPG.h”: No such file or directory/ B3 k/ j( ]' {9 K
- SrvrER.cpp# S( Z! a! J! F) t
- Include\SrvrER.h(234) : fatal error C1083: 无法打开包含文件:“EasyRPG.h”: No such file or directory7 `: [1 q9 P) x, D7 _
- NetWorkServer.cpp
- ..\..\..\NetSDK\Publish\Include\netmiddle_command.h(598) : error C2143: 语法错误 : 缺少“}”(在“常数”的前面)
- ..\..\..\NetSDK\Publish\Include\netmiddle_command.h(598) : error C2143: 语法错误 : 缺少“;”(在“常数”的前面)
- ..\..\..\NetSDK\Publish\Include\netmiddle_command.h(598) : fatal error C1075: 与左侧的 大括号“{”(位于“..\..\..\NetSDK\Publish\Include\netmiddle_command.h(25)”)匹配之前遇到文件结束4 W9 q& S- x3 I. k/ L. h T: r4 S
- NetWorkGame.cpp
- ...
- //解决:. l( N: D! y" s$ v
- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@0 Z6 C% T0 T5 \
- 7.编译SoeClient工程/ }2 q; A; a4 \7 J6 C; a
- (1).出现error LNK2019: 无法解析的外部符号 "GetMoveTypeFromMU..."等连接问题
- //解决:
- 重新编译GmSDK中的UserInterface工程,记得增加_SUFFER宏编译选项,因为GetMoveTypeFromMU等函数是在这个宏下面实现的,然后重新编译SoeClient1 h% m" w9 x8 l; b g+ K
- (2).关于aeslib和md5lib中的函数链接问题
- 网上搜索这2个库,3 I* C: e! I/ \/ Y7 A# i, b
- 关于aeslib,要有aes_enc_key函数的版本,自己生成aeslib.lib放到Prj_TJ2\publish\lib目录下,并copy头文件:
- copy f:\Downloads\fwtj\GmSDK\Code\GameInterface\Include\MapBase.h F:\Downloads\fwtj\GmSDK\Publish\Include\
- md5lib则下载MD5Checksum.zip包含md5源码,这里要略微改下源码:如下:
- a.CMD5Checksum类下public:中增加:MD5_API static void GetMD5Data(BYTE strOutBuf[] , BYTE *pInBuf, UINT nLenth);
- b.在MD5Checksum.h中增加GetMD5Data函数声明:
- #ifdef MD5_EXPORTS
- #define MD5_API) n) K6 s# c5 j0 h: Y
- #else% \* V: V# Z% B
- #define MD5_API
- #endif# ?+ w8 n# a3 R2 p7 j
- MD5_API void GetMD5Data(BYTE strOutBuf[] , BYTE *pInBuf, UINT nLenth);, L, h5 O* n3 e( W& j: v! \0 [
- c.将头文件覆盖到NetSDK\Publish\Include\下:( B6 I5 f3 T2 @0 q
- copy f:\Downloads\fwtj\Prj_TJ2\Code\Client\MD5Checksum\MD5Checksum.h F:\Downloads\fwtj\NetSDK\Publish\Include\
- 编译SoeClient工程,应该会成功- K6 x3 u1 K: [- Z
- 8.服务器编译:
- 1.fwtj\Code-->fwtj\OmSDK
- 2.编译fwtj\OmSDK工程,生成fwtj\Publish0 \. ^3 p- u, w7 W
- 3.将fwtj\OmSDK中所有Include中的文件都copy到fwtj\Publish\Include中4 L. Q X, o$ }6 C0 f/ t6 h
- 4.编译fwtj\NetSDK
- 5.编译fwtj\GmSDK
- (1).编译fwtj\GmSDK\Code\GmaEffect工程出现如下连接问题:
- 正在链接...0 M. X0 N0 |- S3 f% Q
- 正在创建库 ..\..\Publish\Lib\GmaEffect.lib 和对象 ..\..\Publish\Lib\GmaEffect.exp' N/ _3 I3 [4 U0 u' M5 U) y
- ExecutorMng.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::AddPrev(unsigned long)" (?AddPrev@CPrevLoadingMng@@QAEXK@Z) ,该符号在函数 "public: void __thiscall CPrevLoadingMng::AddPrev(void)" (?AddPrev@CPrevLoadingMng@@QAEXXZ) 中被引用& s0 _' M% Y8 ]/ O
- GmaEffectPlayer.obj : error LNK2001: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::AddPrev(unsigned long)" (?AddPrev@CPrevLoadingMng@@QAEXK@Z)
- ExecutorMng.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::IsLoaded(unsigned long)" (?IsLoaded@CPrevLoadingMng@@QAEXK@Z) ,该符号在函数 "public: void __thiscall CPrevLoadingMng::IsLoaded(void)" (?IsLoaded@CPrevLoadingMng@@QAEXXZ) 中被引用
- GmaEffectPlayer.obj : error LNK2001: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::IsLoaded(unsigned long)" (?IsLoaded@CPrevLoadingMng@@QAEXK@Z)
- ExecutorMng.obj : error LNK2019: 无法解析的外部符号 "public: static class CPrevLoadingMng * CPrevLoadingMng::m_pLoadingMng" (?m_pLoadingMng@CPrevLoadingMng@@2PAV1@A) ,该符号在函数 "class CPrevLoadingMng * __cdecl GetLoadingMng(void)" (?GetLoadingMng@@YAPAVCPrevLoadingMng@@XZ) 中被引用
- GmaEffectPlayer.obj : error LNK2019: 无法解析的外部符号 "public: static class CPrevLoadingMng * CPrevLoadingMng::m_pLoadingMng" (?m_pLoadingMng@CPrevLoadingMng@@2PAV1@A) ,该符号在函数 "public: virtual void __thiscall CRuleFrame::SetRuleID(int)" (?SetRuleID@CRuleFrame@@UAEXH@Z) 中被引用/ X( l" x6 i# ]: w' D% g
- ExecutorMng.obj : error LNK2019: 无法解析的外部符号 "public: int __thiscall CPrevLoadingMng::IsTimeOut(void)" (?IsTimeOut@CPrevLoadingMng@@QAEHXZ) ,该符号在函数 "public: virtual long __thiscall CExecutorMng::Build(class CGmaEffectBase *,class CRuleSet *,class CMeshAniMng *,class CGmaEffectLib *,int,class Gfx3D::CSkeletonAni *,class CTrailResLib *,unsigned long,class CTextureMng *,struct IDirect3DDevice8 *,class CGmaEffectPlayer *)" (?Build@CExecutorMng@@UAEJPAVCGmaEffectBase@@PAVCRuleSet@@PAVCMeshAniMng@@PAVCGmaEffectLib@@HPAVCSkeletonAni@Gfx3D@@PAVCTrailResLib@@KPAVCTextureMng@@PAUIDirect3DDevice8@@PAVCGmaEffectPlayer@@@Z) 中被引用2 c8 d& F$ m2 a) \8 C( Z+ X4 C
- GmaEffectPlayer.obj : error LNK2001: 无法解析的外部符号 "public: int __thiscall CPrevLoadingMng::IsTimeOut(void)" (?IsTimeOut@CPrevLoadingMng@@QAEHXZ)" \9 b7 H& G( Z4 L
- GmaEffectPlayer.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::AddData(unsigned long,unsigned long)" (?AddData@CPrevLoadingMng@@QAEXKK@Z) ,该符号在函数 "public: long __thiscall CGmaEffectPlayer::Build(class CMeshAniMng *,class CGmaEffectLib *,unsigned long,int,class Gfx3D::CSkeletonAni *,class CTrailResLib *,unsigned long,class CTextureMng *,struct IDirect3DDevice8 *)" (?Build@CGmaEffectPlayer@@QAEJPAVCMeshAniMng@@PAVCGmaEffectLib@@KHPAVCSkeletonAni@Gfx3D@@PAVCTrailResLib@@KPAVCTextureMng@@PAUIDirect3DDevice8@@@Z) 中被引用
- GmaEffectPlayer.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng:oadBegin(void)" (?LoadBegin@CPrevLoadingMng@@QAEXXZ) ,该符号在函数 "public: long __thiscall CGmaEffectPlayer::Build(class CMeshAniMng *,class CGmaEffectLib *,unsigned long,int,class Gfx3D::CSkeletonAni *,class CTrailResLib *,unsigned long,class CTextureMng *,struct IDirect3DDevice8 *)" (?Build@CGmaEffectPlayer@@QAEJPAVCMeshAniMng@@PAVCGmaEffectLib@@KHPAVCSkeletonAni@Gfx3D@@PAVCTrailResLib@@KPAVCTextureMng@@PAUIDirect3DDevice8@@@Z) 中被引用- `) j3 U" ]. d# O G) _1 A1 z
- ..\..\Publish\Dll\GmaEffect.dll : fatal error LNK1120: 6 个无法解析的外部命令
- 生成日志保存在“file://f:\Downloads\fwtj\GmSDK\Temp\Release\GmaEffect\BuildLog.htm”中
- GmaEffect - 11 错误,0 警告8 ?6 e- l6 K( Y" @2 T: p' G) k
- //解决:3 s5 Y% O, z- j" T& |
- 将fwtj\GmSDK\Code\GmaEffect\Include和fwtj\GmSDK\Code\GmaEffect\Sources中的PrevLoading.h/cpp加入到GmaEffect工程中) G/ t7 }/ E2 E0 w2 h$ V
- (2).编译fwtj\GmSDK\Code\NetServer出错:' {3 E7 E- n! T) L, d. W, Z
- SrvrGS.cpp: S; v9 L, l& n6 t$ s+ C
- f:\Downloads\fwtj\GmSDK\Code\NetServer\Include\SrvrER.h(234) : fatal error C1083: 无法打开包含文件:“EasyRPG.h”: No such file or directory/ B3 k/ j( ]' {9 K
- SrvrER.cpp# S( Z! a! J! F) t
- Include\SrvrER.h(234) : fatal error C1083: 无法打开包含文件:“EasyRPG.h”: No such file or directory7 `: [1 q9 P) x, D7 _
- NetWorkServer.cpp
- ..\..\..\NetSDK\Publish\Include\netmiddle_command.h(598) : error C2143: 语法错误 : 缺少“}”(在“常数”的前面)
- ..\..\..\NetSDK\Publish\Include\netmiddle_command.h(598) : error C2143: 语法错误 : 缺少“;”(在“常数”的前面)
- ..\..\..\NetSDK\Publish\Include\netmiddle_command.h(598) : fatal error C1075: 与左侧的 大括号“{”(位于“..\..\..\NetSDK\Publish\Include\netmiddle_command.h(25)”)匹配之前遇到文件结束4 W9 q& S- x3 I. k/ L. h T: r4 S
- NetWorkGame.cpp
- ...
- //解决:
- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- 7.编译SoeClient工程/ }
- (1).出现error LNK2019: 无法解析的外部符号 "GetMoveTypeFromMU..."等连接问题
- //解决:
- 重新编译GmSDK中的UserInterface工程,记得增加_SUFFER宏编译选项,因为GetMoveTypeFromMU等函数是在这个宏下面实现的,然后重新编译SoeClient1 h% m" w9 x8 l; b g+ K
- (2).关于aeslib和md5lib中的函数链接问题
- 网上搜索这2个库,
- 关于aeslib,要有aes_enc_key函数的版本,自己生成aeslib.lib放到Prj_TJ2\publish\lib目录下,并copy头文件:
- copy f:\Downloads\fwtj\GmSDK\Code\GameInterface\Include\MapBase.h F:\Downloads\fwtj\GmSDK\Publish\Include\
- md5lib则下载MD5Checksum.zip包含md5源码,这里要略微改下源码:如下:% g0 ?2 l8 ?6 r5 N
- a.CMD5Checksum类下public:中增加:MD5_API static void GetMD5Data(BYTE strOutBuf[] , BYTE *pInBuf, UINT nLenth);
- b.在MD5Checksum.h中增加GetMD5Data函数声明:
- #ifdef MD5_EXPORTS
- #define MD5_API) n)
- #else
- #define MD5_API
- #endif
- MD5_API void GetMD5Data(BYTE strOutBuf[] , BYTE *pInBuf, UINT nLenth);
- c.将头文件覆盖到NetSDK\Publish\Include\下:
- copy f:\Downloads\fwtj\Prj_TJ2\Code\Client\MD5Checksum\MD5Checksum.h F:\Downloads\fwtj\NetSDK\Publish\Include\
- 编译SoeClient工程,应该会成功
- 8.服务器编译: