mingw编译OrzNet

(金庆的专栏)

按照熊小磊(Nous)的OrzNet文档(0.5版), 即OrzNet_0_5.pdf, 编译OrzNet.
文档是以linux和vc环境为例的, 我的环境是mingw. 出现错误时需要稍加更改.

* boost编译生成的为.a文件, 如libboost_date_time-mgw45-mt-1_47.a.
* all_dependencies目录建在OrzNetSDK目录下, 而不是根目录Orz_0_5下,
  因为根目录下没有CMakeLists.txt.
* all_dependencies/vc目录改为all_dependencies/mgw45,因为编译环境不是vc.
* all_dependencies/mgw45/lib/下的子目录Debug/和Release/应该没用,
  将Release/下的*.a文件全部移到上级lib/目录下.
 
* OrzNetSDK/CMakeLists.txt主文件更改:
  添加:

set    (Compiler    mgw45) 

    add_definitions(-DBOOST_THREAD_USE_LIB) 


  BOOST_LIB_POSTFIX更改: 

    IF( 1 ) 

        SET(BOOST_LIB_POSTFIX -${Compiler}-mt-1_47 ... 

    ENDIF(1)     

     

* OrzNetSDK\CMake\FindOrzNetDependenciesLibrary.cmake添加: 

    SET    (Compiler    mgw45) 


* 各个子目录的CMakeLists.txt中的TARGET_LINK_LIBRARIES()更改: 

  去除 IF( UNIX ) 条件, 添加ws2_32, wsock32库, 去除dl库. 


IF( 1 ) 

        TARGET_LINK_LIBRARIES(${LIB_NAME} 

        boost_system${BOOST_LIB_POSTFIX} 

        ... 

        ws2_32 

        wsock32 

#       dl 

        ) 

ENDIF(1) 

  

* OrzNetSDK\orz\OrzNetBase\GlobalPlus.h文件: 

  51行: #if ORZ_PLUS_COMPILER == ORZ_PLUS_COMPILER_MSVC 

  改为: #if 1 

  因为需要定义bswap16(). 

  

* 各个Demo文件中, 去除: 

    // _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);