首页 > 代码库 > 初识gsoap2 及 使用qt开发gsoap程序项目文件管理
初识gsoap2 及 使用qt开发gsoap程序项目文件管理
从http://gsoap2.sourceforge.net/下载最新的gsoap2源码包。
通过http://www.cppblog.com/qiujian5628/archive/2008/10/11/54019.html(EXP1)初步了解了gsoap2的使用方法(下属示例使用了该文章的例子)。
由于一直使用Qt做开发项目的文件管理,整理了个qt项目文件,如下:
1. 目录结构
gsoap2 # gsoap2 开发文档根目录│ gsoap.pri # 引入gsoap2开发用源码文件│ gsoap28.pro # 根项目文件│ ├─bin # gsoap2工具链(来自于sourceforge上下载的源码包)及编译后的二进制文件│ soapcpp2.exe│ wsdl2h.exe│├─gsoap # gsoap2开发用源码文件所在目录(来自于sourceforge上下载的源码包)│ .dirstamp│ dom.c│ dom.cpp│ stdsoap2.c│ stdsoap2.cpp│ stdsoap2.h│ typemap.dat│└─leaning # gsoap2应用程序所在根目录 │ leaning.pri # gsoap2应用用的源码及命令头文件 │ leaning.pro # 应用程序管理 ├─nsmap # 接口定义文件所在目录 │ add.h # 接口文件名字必须与gsoap2项目中GSOAP_NAME值一样 │ calc.h ├─add # 服务器应用目录 │ add.pro # 服务器项目 │ main.cpp # 项目源码(来自于(EXP1)所述文档) ├─add_client # 客户端应用目录 │ add_client.pro # 客户端项目 │ main.cpp # 客户端源码(来自于(EXP1)所述文档) ├─calc │ calc.pro │ main.cpp ├─calc_client calc_client.pro main.cpp
其中add.cpp、add_client.cpp分别为服务端和客户端的例子程序(来自于http://www.cppblog.com/qiujian5628/archive/2008/10/11/54019.html)
gsoap2应用项目需要放在learning目录下。
2. gsoap2应用程序项目
控制文件源码及项目举例,目的是为了简化应用开发的配置工作(当前仅在windows下测试过可用)。
gsoap28.pro
TEMPLATE = subdirsSUBDIRS += leaning
gsoap.pri
INCLUDEPATH += $${PWD}/gsoapHEADERS += $${PWD}/gsoap/stdsoap2.hcontains(CONFIG,use_c_gsoap_api) { SOURCES += $${PWD}/gsoap/stdsoap2.c $${PWD}/gsoap/dom.c} else { SOURCES += $${PWD}/gsoap/stdsoap2.cpp $${PWD}/gsoap/dom.cpp}LIBS += -lws2_32
leaning.pri
DESTDIR = $${PWD}/../bininclude($${PWD}/../gsoap.pri)INCLUDEPATH += $${PWD}/nsmap#contains(CONFIG,soap_server) { !exists(./temp):system("mkdir temp") SOAP_GEN_DIR= ./temp/$${GSOAP_NAME} !exists($${SOAP_GEN_DIR}):system("cd temp && mkdir $${GSOAP_NAME}") !exists($${SOAP_GEN_DIR}/$${GSOAP_NAME}.wsdl) { system("soapcpp2.exe -d./$${SOAP_GEN_DIR} ./nsmap/$${GSOAP_NAME}.h") }#}SOAP_GEN_DIR= $${PWD}/temp/$${GSOAP_NAME}SOAP_M_HEADERS += $${SOAP_GEN_DIR}/soapH.h $${SOAP_GEN_DIR}/soapStub.hSOAP_M_SOURCES += $${SOAP_GEN_DIR}/soapC.cpp $${SOAP_GEN_DIR}/soapServer.cppSOAP_C_HEADERS += $${SOAP_GEN_DIR}/soapH.h $${SOAP_GEN_DIR}/soapStub.hSOAP_C_SOURCES += $${SOAP_GEN_DIR}/soapC.cpp $${SOAP_GEN_DIR}/soapClient.cppSOAP_L_SOURCES += $${SOAP_GEN_DIR}/soapC.cpp $${SOAP_GEN_DIR}/soapClientLib.cpp $${SOAP_GEN_DIR}/soapServerLib.cppSOAP_CP_OTHERS += $${SOAP_GEN_DIR}/$${GSOAP_NAME}.*.req.xml $${SOAP_GEN_DIR}/$${GSOAP_NAME}.*.res.xml $${SOAP_GEN_DIR}/ns.xsd $${SOAP_GEN_DIR}/$${GSOAP_NAME}.nsmapINCLUDEPATH += $${SOAP_GEN_DIR}contains(CONFIG,soap_server) { TARGET = $${GSOAP_NAME} HEADERS += $${SOAP_M_HEADERS} SOURCES += $${SOAP_M_SOURCES} QMAKE_CLEAN += $${SOAP_GEN_DIR}/$${GSOAP_NAME}.wsdl $${SOAP_M_HEADERS} $${SOAP_M_SOURCES} $${SOAP_C_HEADERS} $${SOAP_C_SOURCES} $${SOAP_CP_OTHERS} $${SOAP_L_SOURCES}} else { TARGET = $${GSOAP_NAME}_client HEADERS += $${SOAP_C_HEADERS} SOURCES += $${SOAP_C_SOURCES}}HEADERS += $${PWD}/nsmap/$${GSOAP_NAME}.h
leaning.pro
TEMPLATE = subdirsCONFIG += orderedSUBDIRS += add add_client calc calc_client
add.pro
GSOAP_NAME = addTEMPLATE = appCONFIG += console soap_serverinclude(../leaning.pri)HEADERS +=SOURCES += main.cpp
add_client.pro
GSOAP_NAME = addTEMPLATE = appCONFIG += consoleinclude(../leaning.pri)HEADERS +=SOURCES += main.cpp
3. 编译后的项目目录结构
nsmap下的接口文件为手动编辑所得(c的接口定义,通过它生成gsoap项目所需的源码文件)。
temp目录为编译中间产物,由编译时自动产生。
gsoap2│ gsoap.pri│ gsoap28.pro│ gsoap28.pro.user│ mmsys.env│├─bin│ add.exe│ add_client.exe│ calc.exe│ calc_client.exe│ soapcpp2.exe│ wsdl2h.exe│├─gsoap│ .dirstamp│ dom.c│ dom.cpp│ stdsoap2.c│ stdsoap2.cpp│ stdsoap2.h│ typemap.dat│└─leaning │ leaning.pri │ leaning.pro │ ├─add │ add.pro │ main.cpp │ ├─add_client │ add_client.pro │ main.cpp │ ├─calc │ calc.pro │ main.cpp │ ├─calc_client │ calc_client.pro │ main.cpp │ ├─nsmap │ add.h │ calc.h │ └─temp ├─add │ add.add.req.xml │ add.add.res.xml │ add.nsmap │ add.wsdl │ ns.xsd │ soapC.cpp │ soapClient.cpp │ soapClientLib.cpp │ soapH.h │ soapServer.cpp │ soapServerLib.cpp │ soapStub.h │ └─calc calc.add.req.xml calc.add.res.xml calc.div.req.xml calc.div.res.xml calc.mul.req.xml calc.mul.res.xml calc.nsmap calc.pow.req.xml calc.pow.res.xml calc.sub.req.xml calc.sub.res.xml calc.wsdl ns.xsd soapC.cpp soapClient.cpp soapClientLib.cpp soapH.h soapServer.cpp soapServerLib.cpp soapStub.h
4. gsoap2的动态库项目
暂未涉及,学习后再补
初识gsoap2 及 使用qt开发gsoap程序项目文件管理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。