mingw编译OrzNet

来源:互联网 发布:巧克力与香子兰 知乎 编辑:程序博客网 时间:2024/06/04 20:13
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);

原创粉丝点击