## 构建Linux Server ##
1. build info server
* build info server
# make
.a ../../../bin/libnetwork.a ../../../bin/libframework.a -lmysqlclient -lz
../../../bin/libs/libdbthread.a: could not read symbols: File format not recognized
注:libdbthread.a需要重新build
* build libdbthread.a
[root@frank dbthread]# make
g++ -Wall -Wpointer-arith -pipe -D_REENTRANT -D_GNU_SOURCE -g -g -O3 -DRT_UNIX -DRT_LINUX -D__MYSQL__ -DRT_DEBUG -DRT_DISABLE_ASSERTE -I../h -I../../../src/h -I/usr/include/mysql -c -o ../../../bin/platform/dbthread/dbmysql.o dbmysql.cpp
在包含自 dbmysql.cpp:9 的文件中:
../h/dbmysql.h:27:19: 错误:mysql.h:没有那个文件或目录
../h/dbmysql.h:101: 错误:ISO C++ 不允许声明无类型的 ‘MYSQL’
../h/dbmysql.h:101: 错误:expected ‘;’ before ‘*’ token
../h/dbmysql.h:114: 错误:‘MYSQL_ROW’ 没有命名一个类型
../h/dbmysql.h:117: 错误:ISO C++ 不允许声明无类型的 ‘MYSQL_RES’
注:需要重新安装mysql
* 从源代码开始安装mysql 5.0.X
# ./configure --prefix=/usr/local/mysql starting at 12:30
# make: starting at 12:47, end at 13:05
# make install:starting at 13:06, end at 13:08
* 再次build libdbthread.a
# 修改Makefile,指向正确的mysql include目录:/usr/local/mysql/include/mysql
Q:原来的-I $(MYSQL_HOME)在哪里定义的?
#make
[root@frank dbthread]# make
g++ -Wall -Wpointer-arith -pipe -D_REENTRANT -D_GNU_SOURCE -g -g -O3 -DRT_UNIX -DRT_LINUX -D__MYSQL__ -DRT_DEBUG -DRT_DISABLE_ASSERTE -I../h -I../../../src/h -I/usr/local/mysql/include/mysql -c -o ../../../bin/platform/dbthread/dbmysql.o dbmysql.cpp
g++ -Wall -Wpointer-arith -pipe -D_REENTRANT -D_GNU_SOURCE -g -g -O3 -DRT_UNIX -DRT_LINUX -D__MYSQL__ -DRT_DEBUG -DRT_DISABLE_ASSERTE -I../h -I../../../src/h -I/usr/local/mysql/include/mysql -c -o ../../../bin/platform/dbthread/dboci_adaptor.o dboci_adaptor.cpp
g++ -Wall -Wpointer-arith -pipe -D_REENTRANT -D_GNU_SOURCE -g -g -O3 -DRT_UNIX -DRT_LINUX -D__MYSQL__ -DRT_DEBUG -DRT_DISABLE_ASSERTE -I../h -I../../../src/h -I/usr/local/mysql/include/mysql -c -o ../../../bin/platform/dbthread/CmDBThread.o CmDBThread.cpp
ar rsuv ../../../bin/libs/libdbthread.a ../../../bin/platform/dbthread/dbmysql.o ../../../bin/platform/dbthread/dboci_adaptor.o ../../../bin/platform/dbthread/CmDBThread.o
r - ../../../bin/platform/dbthread/dbmysql.o
r - ../../../bin/platform/dbthread/dboci_adaptor.o
r - ../../../bin/platform/dbthread/CmDBThread.o
chmod a+r ../../../bin/libs/libdbthread.a
OK !
* 再次build info server
[root@frank dbthread]# make
in/common/GcServerPdu.o ../../../bin/common/GcClientPdu/GcClientPdu.o ../../../bin/libmonitor.a ../../../bin/libs/libaudiocodec32.a ../../../bin/libsecurity.a ../../../bin/libnetwork.a ../../../bin/libframework.a -lmysqlclient -lz
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld 返回 1
make: *** [../../../bin/InfoServer] 错误 1
* 修改Makefile,指明libmysqlclient.a的目录位置
USER_LINK_DLLS = -lmysqlclient -lz -L/usr/local/mysql/lib/mysql
Q:使用方法是static lib还是DLL?
# make
OK !
* 配置iwlab.ini, 运行
[root@frank bin]# ./InfoServer
New build infoserver 4.2.
Load Config Failed
* 配置环境变量,并把iwlab.ini放入, 重启动
OK !
2. build controller
* make
../../../bin/libs/libdbthread.a ../../../bin/libfilerecord.a ../../../bin/libconnmgr.a ../../../bin/libs/libiwltriallicense.a ../../../bin/libsecurity.a ../../../bin/libnetwork.a ../../../bin/libframework.a -lmysqlclient -lz
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld 返回 1
make: *** [../../../bin/gc] 错误 1
* 修改Makefile,指明libmysqlclient.a的目录位置
USER_LINK_DLLS = -lmysqlclient -lz -L/usr/local/mysql/lib/mysql
OK !
* 启动
./gc ( not Controller)
OK !
3. Client连接
* 修改ip地址,启动
OK!
注:结束于14:35
4. 下一步计划
* 日志文件
* 理解console信息
* 文档review
* 自动build系统相关设置
* SVN模块