凤舞 - 编译 客户端

  1. 1.fwtj\Code-->fwtj\OmSDK
  2. 2.编译fwtj\OmSDK工程,生成fwtj\Publish0 \
  3. 3.将fwtj\OmSDK中所有Include中的文件都copy到fwtj\Publish\Include中
  4. 4.编译fwtj\NetSDK
  5. 5.编译fwtj\GmSDK
  6. (1).编译fwtj\GmSDK\Code\GmaEffect工程出现如下连接问题:
  7. 正在链接...
  8. 正在创建库 ..\..\Publish\Lib\GmaEffect.lib 和对象 ..\..\Publish\Lib\GmaEffect.exp' N/ _3 I3 [4 U0 u' M5 U) y
  9. ExecutorMng.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::AddPrev(unsigned long)" (?AddPrev@CPrevLoadingMng@@QAEXK@Z) ,该符号在函数 "public: void __thiscall CPrevLoadingMng::AddPrev(void)" (?AddPrev@CPrevLoadingMng@@QAEXXZ) 中被引用
  10. GmaEffectPlayer.obj : error LNK2001: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::AddPrev(unsigned long)" (?AddPrev@CPrevLoadingMng@@QAEXK@Z)
  11. ExecutorMng.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::IsLoaded(unsigned long)" (?IsLoaded@CPrevLoadingMng@@QAEXK@Z) ,该符号在函数 "public: void __thiscall CPrevLoadingMng::IsLoaded(void)" (?IsLoaded@CPrevLoadingMng@@QAEXXZ) 中被引用
  12. GmaEffectPlayer.obj : error LNK2001: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::IsLoaded(unsigned long)" (?IsLoaded@CPrevLoadingMng@@QAEXK@Z)
  13. ExecutorMng.obj : error LNK2019: 无法解析的外部符号 "public: static class CPrevLoadingMng * CPrevLoadingMng::m_pLoadingMng" (?m_pLoadingMng@CPrevLoadingMng@@2PAV1@A) ,该符号在函数 "class CPrevLoadingMng * __cdecl GetLoadingMng(void)" (?GetLoadingMng@@YAPAVCPrevLoadingMng@@XZ) 中被引用
  14. 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) 中被引用
  15. 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
  16. GmaEffectPlayer.obj : error LNK2001: 无法解析的外部符号 "public: int __thiscall CPrevLoadingMng::IsTimeOut(void)" (?IsTimeOut@CPrevLoadingMng@@QAEHXZ)" \9 b7 H& G( Z4 L
  17. 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) 中被引用
  18. 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
  19. ..\..\Publish\Dll\GmaEffect.dll : fatal error LNK1120: 6 个无法解析的外部命令
  20. 生成日志保存在“file://f:\Downloads\fwtj\GmSDK\Temp\Release\GmaEffect\BuildLog.htm”中
  21. GmaEffect - 11 错误,0 警告8 ?6 e- l6 K( Y" @2 T: p' G) k
  22. //解决:3 s5 Y% O, z- j" T& |
  23. 将fwtj\GmSDK\Code\GmaEffect\Include和fwtj\GmSDK\Code\GmaEffect\Sources中的PrevLoading.h/cpp加入到GmaEffect工程中) G/ t7 }/ E2 E0 w2 h$ V
  24. (2).编译fwtj\GmSDK\Code\NetServer出错:' {3 E7 E- n! T) L, d. W, Z
  25. SrvrGS.cpp: S; v9 L, l& n6 t$ s+ C
  26. 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
  27. SrvrER.cpp# S( Z! a! J! F) t
  28. Include\SrvrER.h(234) : fatal error C1083: 无法打开包含文件:“EasyRPG.h”: No such file or directory7 `: [1 q9 P) x, D7 _
  29. NetWorkServer.cpp
  30. ..\..\..\NetSDK\Publish\Include\netmiddle_command.h(598) : error C2143: 语法错误 : 缺少“}”(在“常数”的前面)
  31. ..\..\..\NetSDK\Publish\Include\netmiddle_command.h(598) : error C2143: 语法错误 : 缺少“;”(在“常数”的前面)
  32. ..\..\..\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
  33. NetWorkGame.cpp
  34. ...
  35. //解决:. l( N: D! y" s$ v
  36. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@0 Z6 C% T0 T5 \
  37. 7.编译SoeClient工程/ }2 q; A; a4 \7 J6 C; a
  38. (1).出现error LNK2019: 无法解析的外部符号 "GetMoveTypeFromMU..."等连接问题
  39. //解决:
  40. 重新编译GmSDK中的UserInterface工程,记得增加_SUFFER宏编译选项,因为GetMoveTypeFromMU等函数是在这个宏下面实现的,然后重新编译SoeClient1 h% m" w9 x8 l; b  g+ K
  41. (2).关于aeslib和md5lib中的函数链接问题
  42. 网上搜索这2个库,3 I* C: e! I/ \/ Y7 A# i, b
  43. 关于aeslib,要有aes_enc_key函数的版本,自己生成aeslib.lib放到Prj_TJ2\publish\lib目录下,并copy头文件:
  44. copy f:\Downloads\fwtj\GmSDK\Code\GameInterface\Include\MapBase.h F:\Downloads\fwtj\GmSDK\Publish\Include\

  45. md5lib则下载MD5Checksum.zip包含md5源码,这里要略微改下源码:如下:
  46. a.CMD5Checksum类下public:中增加:MD5_API static void GetMD5Data(BYTE strOutBuf[] , BYTE *pInBuf, UINT nLenth);
  47. b.在MD5Checksum.h中增加GetMD5Data函数声明:
  48. #ifdef MD5_EXPORTS
  49. #define MD5_API) n) K6 s# c5 j0 h: Y
  50. #else% \* V: V# Z% B
  51. #define MD5_API
  52. #endif# ?+ w8 n# a3 R2 p7 j
  53. MD5_API void GetMD5Data(BYTE strOutBuf[] , BYTE *pInBuf, UINT nLenth);, L, h5 O* n3 e( W& j: v! \0 [
  54. c.将头文件覆盖到NetSDK\Publish\Include\下:( B6 I5 f3 T2 @0 q
  55. copy f:\Downloads\fwtj\Prj_TJ2\Code\Client\MD5Checksum\MD5Checksum.h F:\Downloads\fwtj\NetSDK\Publish\Include\
  56. 编译SoeClient工程,应该会成功- K6 x3 u1 K: [- Z


  57. 8.服务器编译:
复制代码
  1. 1.fwtj\Code-->fwtj\OmSDK
  2. 2.编译fwtj\OmSDK工程,生成fwtj\Publish0 \. ^3 p- u, w7 W
  3. 3.将fwtj\OmSDK中所有Include中的文件都copy到fwtj\Publish\Include中4 L. Q  X, o$ }6 C0 f/ t6 h
  4. 4.编译fwtj\NetSDK
  5. 5.编译fwtj\GmSDK
  6. (1).编译fwtj\GmSDK\Code\GmaEffect工程出现如下连接问题:
  7. 正在链接...0 M. X0 N0 |- S3 f% Q
  8. 正在创建库 ..\..\Publish\Lib\GmaEffect.lib 和对象 ..\..\Publish\Lib\GmaEffect.exp' N/ _3 I3 [4 U0 u' M5 U) y
  9. 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
  10. GmaEffectPlayer.obj : error LNK2001: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::AddPrev(unsigned long)" (?AddPrev@CPrevLoadingMng@@QAEXK@Z)
  11. ExecutorMng.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::IsLoaded(unsigned long)" (?IsLoaded@CPrevLoadingMng@@QAEXK@Z) ,该符号在函数 "public: void __thiscall CPrevLoadingMng::IsLoaded(void)" (?IsLoaded@CPrevLoadingMng@@QAEXXZ) 中被引用
  12. GmaEffectPlayer.obj : error LNK2001: 无法解析的外部符号 "public: void __thiscall CPrevLoadingMng::IsLoaded(unsigned long)" (?IsLoaded@CPrevLoadingMng@@QAEXK@Z)
  13. ExecutorMng.obj : error LNK2019: 无法解析的外部符号 "public: static class CPrevLoadingMng * CPrevLoadingMng::m_pLoadingMng" (?m_pLoadingMng@CPrevLoadingMng@@2PAV1@A) ,该符号在函数 "class CPrevLoadingMng * __cdecl GetLoadingMng(void)" (?GetLoadingMng@@YAPAVCPrevLoadingMng@@XZ) 中被引用
  14. 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
  15. 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
  16. GmaEffectPlayer.obj : error LNK2001: 无法解析的外部符号 "public: int __thiscall CPrevLoadingMng::IsTimeOut(void)" (?IsTimeOut@CPrevLoadingMng@@QAEHXZ)" \9 b7 H& G( Z4 L
  17. 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) 中被引用
  18. 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
  19. ..\..\Publish\Dll\GmaEffect.dll : fatal error LNK1120: 6 个无法解析的外部命令
  20. 生成日志保存在“file://f:\Downloads\fwtj\GmSDK\Temp\Release\GmaEffect\BuildLog.htm”中
  21. GmaEffect - 11 错误,0 警告8 ?6 e- l6 K( Y" @2 T: p' G) k
  22. //解决:3 s5 Y% O, z- j" T& |
  23. 将fwtj\GmSDK\Code\GmaEffect\Include和fwtj\GmSDK\Code\GmaEffect\Sources中的PrevLoading.h/cpp加入到GmaEffect工程中) G/ t7 }/ E2 E0 w2 h$ V
  24. (2).编译fwtj\GmSDK\Code\NetServer出错:' {3 E7 E- n! T) L, d. W, Z
  25. SrvrGS.cpp: S; v9 L, l& n6 t$ s+ C
  26. 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
  27. SrvrER.cpp# S( Z! a! J! F) t
  28. Include\SrvrER.h(234) : fatal error C1083: 无法打开包含文件:“EasyRPG.h”: No such file or directory7 `: [1 q9 P) x, D7 _
  29. NetWorkServer.cpp
  30. ..\..\..\NetSDK\Publish\Include\netmiddle_command.h(598) : error C2143: 语法错误 : 缺少“}”(在“常数”的前面)
  31. ..\..\..\NetSDK\Publish\Include\netmiddle_command.h(598) : error C2143: 语法错误 : 缺少“;”(在“常数”的前面)
  32. ..\..\..\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
  33. NetWorkGame.cpp
  34. ...
  35. //解决:
  36. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  37. 7.编译SoeClient工程/ }
  38. (1).出现error LNK2019: 无法解析的外部符号 "GetMoveTypeFromMU..."等连接问题
  39. //解决:
  40. 重新编译GmSDK中的UserInterface工程,记得增加_SUFFER宏编译选项,因为GetMoveTypeFromMU等函数是在这个宏下面实现的,然后重新编译SoeClient1 h% m" w9 x8 l; b  g+ K
  41. (2).关于aeslib和md5lib中的函数链接问题
  42. 网上搜索这2个库,
  43. 关于aeslib,要有aes_enc_key函数的版本,自己生成aeslib.lib放到Prj_TJ2\publish\lib目录下,并copy头文件:
  44. copy f:\Downloads\fwtj\GmSDK\Code\GameInterface\Include\MapBase.h F:\Downloads\fwtj\GmSDK\Publish\Include\

  45. md5lib则下载MD5Checksum.zip包含md5源码,这里要略微改下源码:如下:% g0 ?2 l8 ?6 r5 N
  46. a.CMD5Checksum类下public:中增加:MD5_API static void GetMD5Data(BYTE strOutBuf[] , BYTE *pInBuf, UINT nLenth);
  47. b.在MD5Checksum.h中增加GetMD5Data函数声明:
  48. #ifdef MD5_EXPORTS
  49. #define MD5_API) n)
  50. #else
  51. #define MD5_API
  52. #endif
  53. MD5_API void GetMD5Data(BYTE strOutBuf[] , BYTE *pInBuf, UINT nLenth);
  54. c.将头文件覆盖到NetSDK\Publish\Include\下:
  55. copy f:\Downloads\fwtj\Prj_TJ2\Code\Client\MD5Checksum\MD5Checksum.h F:\Downloads\fwtj\NetSDK\Publish\Include\
  56. 编译SoeClient工程,应该会成功


  57. 8.服务器编译:

你可能感兴趣的:(struct,api,Class,Build,include,byte)