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);