前言
最近持续性摆烂,导致的后果就是,什么都不想做,什么也不想学习,能活着就好。但是生活不会让你摆烂下去,人生还得支棱起来,无论到哪里都有苦难。俞敏洪说的好,人要接受来到人世间就是受苦的。
前一段时间,有个小项目,因为有其他事情耽搁下来,没有选择去做;现在回头看看,搞定也不难,今天就把这个项目环境搭建记录一下,供后续用到的时候翻看。
项目背景
使用C++写客户端代码,订阅多个股票或期货网站的数据;主要使用到的第三方库有websocket、ZMQ、RapidJson等;
项目环境
编译构建:VS2019+x64+release
运行环境:win10 server
项目依赖:第三方开源库websocket、zmq、rapidjson,以dll或lib形式提供。
代码架构

其中bin是第三方库dll文件、clients是需要开发的客户端代码、config是订阅股票或期货网站的json文件、include是第三方开源库的头文件、lib是第三方开源库lib,tools是开发的一些日志等工具
main.cpp是订阅股票网站逻辑代码
VS2019构建环境配置
过去经常在linux下做开发,很少使用vs2019,看到代码的第一反应想到怎么没有CMakeLists.txt,要不然项目代码是如何完成各个文件夹编译依赖。VS2019很强大,它可以帮助我们完成构建。下面记录vs2019创建构建工程的步骤。
1. 新建工程
一般情况下,如果是没有代码的话,我们可以创建默认工程就可以了,在已有代码工程情况下,我们可以根据已有代码文件夹创建工程:

2. 创建C++工程

此处根据需要创建,我们项目是需要C++,所以此处选择Visual C++
3. 设置项目文件位置和名称

点击浏览,找到你的项目所在位置,输入项目名称。
4. 选择项目属性

从菜单栏中点击“项目”——>“属性”即可
5. 配置项目属性
5.1 配置头文件路径

选择“C/C++”——>“常规”——>“附加包含目录”——>手动输入头文件路径。需要注意的是,此处的路径模式是绝对路径,我们最好添加相对路径,这样保证移动到其他主机上,项目配置也是正确的。
5.2 配置依赖的lib库路径

点击“链接器”——>“常规”——>“附加库目录”,手动输入依赖的库路径,同样建议写相对路径。
5.3 配置预处理宏

这个步骤不是必须的,视情况添加,因为我配置的项目使用到了windows SDK中的socket,有些定义在多个文件中出现,需要添加宏去屏蔽掉不需要的变量或结构定义。
5.4 配置生成事件
这个步骤也不是必要的,视项目具体情况添加,本项目生成的可执行文件,需要用到dll文件,但是dll文件又不在目标文件夹中,需要设置生成后事件,其实就是一条命令将dll文件复制到目标文件夹中。
结果预览
经过上一步骤的配置,你的项目基本可以编译成功了,如果不存在语法错误。我们可以看一下构建的结果预览

