网络聊天项目(2)-VisualStudio配置boost与json
Note: 此项目原博客地址
https://llfc.club/category?catid=225RaiVNI8pFDD5L4m807g7ZwmF#!aid/2eIZxNzngJYIRWlBEXDJyVdk9Lb
Boost库安装
打开Boost库官网https://www.boost.org/,下载boost库文件安装包
解压boost库文件后,点击booststrap.bat生成b2.exe执行文件
生成b2.exe后,点击他并输入以下命令
1 | .\b2.exe install --toolset=msvc-14.3 --build-type=complete --prefix="D:\cppsoft\boost_1_81_0" link=static runtime-link=shared threading=multi debug release |
先来解释一下各个参数的含义
install代表可以更改为stage,stage只生成库(lib和dll),install还会生成包含头文件的include目录。一般来说用stage足够了我们将生成的lib和下载的源码包的include头文件放到项目要用到的地方即可
toolset指定编译器,gcc是编译生成Linux用的库,msvc是用来编译生成Windows用的库,msvc后面的-14.3代表了我使用的Visual Studio是2022版本,这里的数字一定要与Visual Studio的版本相对应
如果选择的是install命令,指定生成的库文件夹要用–prefix,如果使用的是stage命令,需要用到–stagedir来指定
link表示要生成静态库还是动态库,static表示生成lib库,shared表示生成dll库
runtime-link表示用于指定运行时链接方式为静态库还是动态库,指定为static就是MT模式,指定shared就是MD模式。MD和MT是微软Visual C++编辑器的选项,用于指定运行库时的链接方式,这两个选项有以下两个区别:
1、MD:表示使用多线程DLL(Dynamic Link Library)版本运行时的库。这意味着你的应用程序将使用动态链接的运行时库(MSVCRT.dll),这样的设置可以减少最终可执行文件的大小,并允许运行程序与其他使用相同运行库版本的程序共享代码和数据
2、MT:表示使用多线程静态库(Static Library)版本时运行的库。这意味着所有的运行函数都将被静态链接到应用程序里面,使得应用程序不在依赖于动态链接时的运行库。这样可以确保应用程序在没有额外依赖的情况下独立运行,但可能会导致最终可执行文件体积的增大
一句话简化上边的含义,就是我们生成的lib库,运行时采用MD加载模式
下面是编辑界面
标注的就是运行命令后生成的目录和文件
接下来我们配置Boost
配置Boost库
打开Visual Studio创建项目,右键点击项目选择属性,点开VC++目录,选择包含目录,添加路径D:\WorkSoft\Code\Three-part_libraries\Boost\boost_1_85_0
然后选择库目录,添加路径D:\WorkSoft\Code\Three-part_libraries\Boost\boost_1_85_0\lib
配置包含目录和库目录的路径都是自己电脑上boost文件的目录
接下来写个代码测试一下
1 |
|
运行成功,就会弹出以下界面
配置jsoncpp
因为客户端与服务器之间的通讯一般都使用jsoncpp进行数据加密,所以我们也使用jsoncpp,首先从官网https://github.com/open-source-parsers/jsoncpp下载相应的压缩包,解压压缩包后生成以下文件
点击makefiles文件
找到jsoncpp.sln文件,用Visual Studio打开,之后会出现单项升级提示,点击确定
找到项目里的lib_json,选择用X64位的编译平台进行编译,将debug与release两个版本都编译一下
右键lib_json选择属性,打开C/C++再选择代码生成,之后在右侧选择运行库,选择MDd版本
编译生成后,在makefiles文件下就会生成x64文件夹
接下来我在D:\WorkSoft\Code\Three-part_libraries\Json这个目录下创建一个json文件夹,在其内部闯将include和lib两个文件夹
将jsoncpp-src-0.5.0源码文件夹下include文件夹里的内容copy到libjson下的include文件夹内。
将jsoncpp-src-0.5.0源码文件夹下x64位debug文件夹和Release文件夹下生成的库copy到libjson下的lib文件夹内。
接下来,我们需要在项目属性中配置jsoncpp,同配置boost一样,先配置包含目录,添加路径D:\WorkSoft\Code\Three-part_libraries\Json\json\include
之后,再配置库目录,添加路径
另外我们还需要设置链接器->输入->附加依赖项里设置json_vc71_libmtd.lib
之后,我们写个代码测试一下json库的安装情况
1 |
|
代码的输出如下: