一、环境准备
1.内核详情:Linux localhost.localdomain 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
2.g++(gcc)版本:gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
3.下载scon和jsoncpp安装包
scon:http://prdownloads.sourceforge.NET/scons/scons-2.2.0.tar.gz
jsoncpp:https://sourceforge.net/projects/jsoncpp/ 目前是jsoncpp-src-0.5.0.tar.gz版本
4安装
scon
[my@localhost src]$tar -zxvf scons-2.1.0.tar.gz #cd scons-2.1.0
[my@localhost src]$python setup.py install
Jsoncpp
[my@localhost src]$tar -zxvf jsoncpp-src-0.5.0.tar.gz
[my@localhost src]$cd jsoncpp-src-0.5.0
[my@localhost src]$scons platform=linux-gcc
在 /usr/local/jsoncpp-src-0.5.0/libs/linux-gcc-4.8.5 目录下会生成两个文件:
生成的文件名与当前gcc版本有关。
5.将这两个文件拷贝到 /usr/lib64 下,
include下面的文件夹json拷贝到 /usr/include 下。
二、项目实施(代码编译)
1.依赖库(私有库)
依赖库主要包括:libevent、libjsoncpp、libnshost、libmontion_net等四部分;除jsoncpp库再、/usr/local/室外其余均在/usr/lib中
libevent( Libevent之http协议框架): libevent-2.1.so.7、libevent_core-2.1.so.7.0.0、libevent_extra-2.1.so.7.0.0、libevent_pthreads-2.1.so.7.0.0
libjsoncpp(json数据解析):
libnshost(nsp单例库):libnshost.so (mv nshost.so.9.7.8 libnshost.so)
libmotion_net(Tcp协议框架库):libmotion_net.so(mv motion_net.so libmotion_net.so)
2.代码编译和运行
从代码编译到运行分成两步骤:生成汇编文件、由汇编文件产生可执行文件(defect)
汇编:net_client_manager.o(Tcp协议相关)、net_client_session.o(Tcp协议相关)、ToolImpl.o(工具类)、TcpData.o(Tcp数据转换)、 HttpData.o(Http数据转换)以及main.cpp(入口函数)
net_client_manager.o:[cys@localhost src]$ g++ -c net_client_manager.cpp -I../include/nsp/ -I../include/proto -std=c++11
net_client_session.o: [cys@localhost src]$g++ -c net_client_session.cpp -I../include/nsp/ -I../include/proto -std=c++11
ToolImpl.o: [cys@localhost src]$ g++ -c ToolImpl.cpp -I../include/nsp -std=c++11
TcpData.o: [cys@localhost src]$g++ -c TcpData.cpp -I../include/nsp -std=c++11
HttpData.o: [cys@localhost src]$g++ -c HttpData.cpp -I../include/nsp -std=c++11
可执行文件(defect)
[cys@localhost src]$ g++ net_client_session.o net_client_manager.o ToolImpl.o TcpData.o HttpData.o main.cpp -o ../bin/defect -std=c++11 -lpthread -rdynamic -lpthread -levent_pthreads -levent -lcrypt -ldl -lnshost -lmotion_net -ljson_linux-gcc-4.8.5_libmt -I../include/nsp
三、运行
致谢:https://blog.csdn.net/sxm0403/article/details/96140638
参考:gcc -ldl 选项作用:https://blog.csdn.net/qingzhuyuxian/article/details/81877827、https://blog.csdn.net/weixin_39517289/article/details/111798467
GNU之makefile操作文档:链接: https://pan.baidu.com/s/1rZkHF8XCpXLpz29E6Tr20w 提取码: sk3j