从0开始配置tk项目编译环境
[TOC]
从0开始配置TK项目编译环境
1 目标
将一台公司新分配的电脑配置好开发环境、IDE、项目属性,以能成功编译TKNOSService项目。
2 配置 Git 存储库
(1) 在本地安装并配置 git
-
安装 git,可以直接从 git官网 上下一个最新版本的 git 安装包1,双击安装就行了。
通过在命令行中输入
git -v查看是否安装成功。 -
配置 git,在命令行中依次输入下面两个命令,配置用户名和 Email 地址:
git config --global user.name hansb git config --global user.email hansb@mail.jj.cn -
配置 SSH 密匙,为了能与 GitLab 正常交换代码,需要配置 SSH,参考文章2操作即可,然后将生成的 SSH 公匙提交到 GitLab 上就行了。
(感觉通过 Git Gui.exe 来新增、查询 SSH 密匙也是可以的,但没有试)
-
安装 VSCode,并安装以下 git 相关的插件:
(2) 在 GitLab 上拉取代码
- 在 GitLab 上由管理员开放相关存储库的权限。
-
然后在所有项目中就能看到自己 fork 出来的项目了,该项目位于远端:
需要了解一下项目分支合作模式:3
-
将远端的代码库克隆到本地,在 GitLab 网址上可以直接打开 VSCode 操作,然后选一个本地位置就行了。
(3) 存储库分支
-
在 VS2022 中打开该项目,可以通过 VS2022 提供的 Git 相关插件操作分支、提交修改等。
-
将操作路径切换到刚刚拉下来的分支,在命令行中执行以下命令:
-
添加一个新的远端仓库,命名为 upstream,指向源仓库:
git remote add upstream https://pscgit.jjmatch.cn/EVT/tkevtservice.git -
获取一下远端仓库的代码:
git fetch upstream
-
-
在 VS2022 查看 Git仓库 ,可以看到配置好的远端分支:
-
git 常用命令:1

3 安装 VS
-
安装 VS2022,直接双击 exe 安装即可。
-
安装 VC2010,因为团队代码的平台工具集都是用的 VisualStudio2010(V100),所以还需要安装【VC++ 2010学习版 (64bit)】以适配项目配置,该软件见个人的软件文件夹中,理论上装个 VS2010 也是同样的效果,但是 VC2010 比较轻量化,也足够用了,所以首推 VC2010。
(注:软件目录下的【vc2010epr_enu】也可以同样配置好VC2010的配置,但是是英文的)
4 配置公共库
(1) 公共库
-
公共基础库,位于
\\192.168.18.18\tksdk,需找辛祥义开一下权限(提供 ip 地址)。 -
在本地映射一个
T:盘指向上述共享地址。 -
写一个同步脚本,保存成批处理文件
syncsdk.bat4,在每次编译前执行文件同步:robocopy t:\base E:\CODE\depend\tksdk\base *.* /E /MT:8 robocopy t:\client E:\CODE\depend\tksdk\client *.* /E /MT:8 robocopy t:\server E:\CODE\depend\tksdk\server *.* /E /MT:8 robocopy t:\other E:\CODE\depend\tksdk\other *.* /E /MT:8 @echo ============================拷贝完成================================= pause
(2) 源码
项目中还会依赖一些公共的源码,在 GitLab 上进行托管,例如 RedisConnection ,该项目位于 GitLab 上的 UBCsharecode/sharecode 项目中,直接将远端存储库的 master 分支拉取到本地即可。
目前需要拉取到本地的 Git 代码库包括:
UBCsharecode / sharecode
UBCsharecode / Protocol
代码位置:
以 TKNOSService 项目为例,该项目中添加的公共代码位置为:“..\..\ShareCode\ShareCode\CLSSDK\ServiceCLS.cpp”,也就是两级父目录下的该路径中的 “ServiceCLS.cpp” 文件,需保证拉取的代码与该路径一致。
简而言之,新添加的ShareCode应与TKNOSService在同一个路径下:
(3) 共享盘中没有的公共库
经对比,共享网盘 \\192.168.18.18\tksdk\other 目录下,部分文件夹(文件)缺失,需从朴宸电脑上拷贝过来,缺失文件列表如下:
5 配置项目
(1) 全局配置
-
在 VS 中通过 “视图-属性管理器” 打开属性管理器,随便找到一个
Microsoft.Cpp.Win32.user,右键 “属性”,修改用户的全局配置。 -
在用户宏中增加宏定义,指向本地位置:
-
在 “通用属性 - VC++目录 - 包含目录” 中增加路径:
内容如下:5
1
$(TKGIT)\sharecode\ShareCode\RedisConnection;$(TKSDK)\Other\curl\include;$(TKSDK)\Other\mysql6.1.6\include;$(TKSDK)\Other\mysqlpp\include;$(TKSDK)\Other\hiredis\include;$(TKSDK)\Other\jsoncpp\include;$(TKGIT)\sharecode\ShareCode;$(TKGIT)\Protocol\Protocol;$(TKSDK)\Other\Boost\boost_1_54_0;$(TKSDK)\Other\Boost\boost_1_54_0\boost;$(TKSDK)\Other\cassandra\cassandra-2.6.0\include;$(TKSDK)\server\Protocol;$(TKSDK)\Server\include;$(TKSDK)\Client\include;$(TKSDK)\Base\include;$(TKSDK)\Other\curl-7.46\include;$(TKGIT)\sharecode\ShareCode\DTCSDK;$(IncludePath)
-
在 “通用属性 - VC++目录 - 库目录” 中增加路径:
内容如下:5
1
$(TKSDK)\Other\curl\lib;$(TKSDK)\Other\mysql6.1.6\lib;$(TKSDK)\Other\mysqlpp\lib;$(TKSDK)\Other\hiredis\lib;$(TKSDK)\Other\jsoncpp\lib;$(TKSDK)\Other\Boost\boost_1_54_vs10\lib;$(TKSDK)\Other\Boost\boost_1_54_0\libs;$(TKSDK)\Other\cassandra\cassandra-2.6.0\lib;$(TKSDK)\Server\lib;$(TKSDK)\Client\lib;$(TKSDK)\Base\lib;$(TKSDK)\Other\curl-7.46\lib;$(LibraryPath)
-
在 “C/C++ - 预处理器 - 预处理器定义” 中增加宏定义:
内容如下:
1
_USE_32BIT_TIME_T;MYSQLPP_NO_DLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
-
其它配置,例如字符集、附加库,以
TKNOSService为例,无需修改即可。如需修改生成后执行文件,在 “生成事件 - 后期生成时间 - 命令行” 中修改对应的
.dat文件即可。
(2) 项目配置
以TKNOSService为例,上述全局配置好以后,右键 “生成” 就能正确编译出来了,无需修改单个项目的配置。












