在前后端通信过程中发现已有的socket与后端代码并不兼容,我写的后端代码是使用mingw进行编译的,而socket部分的编译方式是msvc,连接以后会出现不兼容的问题。
部分的报错信息
所以选择重新写一个mingw编译下的socket,方便前后端通信。
在mingw下编译websocket最主要的是boost库,在官网上下载以后在文件夹中执行命令。
1.bootstrap gcc
若想一次性编译完毕, 以后就无需再进行编译则执行
2.b2 toolset=gcc
由于是在clion中编写的代码,所以要在CMakeLists 中配置 Boost。
现在stage文件夹中写一个重命名脚本
# -*- coding: utf-8 -*-
# renamer.py
from os import listdir, rename
import re
for filename in listdir('lib'):
new_filename = re.sub('libboost(.*)-x64(.*).a', r'libboost\1\2.a', filename)
rename('lib/' + filename, 'lib/' + new_filename)
执行以后在CMakeList中引入Boost,并引入ws2_32,
CMakeList部分引入代码
set(Boost_DETAILED_FAILURE_MSG ON)
set(Boost_DEBUG on)
set(BOOST_ROOT C:/Users/l'l/boost/boost_1_70_0)
set(BOOST_INCLUDEDIR ${BOOST_ROOT})
set(BOOST_LIBRARYDIR ${BOOST_ROOT}/stage/lib)
find_package(Boost COMPONENTS REQUIRED filesystem program_options)
include_directories(${BOOST_ROOT})
target_link_libraries(server ${Boost_LIBRARIES})
target_link_libraries(server ws2_32)
target_link_libraries(server -lws2_32 -lwsock32 )
如此,便可以解决前后端通信问题。
|