文章

从0开始配置tk项目编译环境

从0开始配置tk项目编译环境

[TOC]

从0开始配置TK项目编译环境

1 目标

将一台公司新分配的电脑配置好开发环境、IDE、项目属性,以能成功编译TKNOSService项目。

2 配置 Git 存储库

(1) 在本地安装并配置 git

  1. 安装 git,可以直接从 git官网 上下一个最新版本的 git 安装包1,双击安装就行了。

    通过在命令行中输入 git -v 查看是否安装成功。

  2. 配置 git,在命令行中依次输入下面两个命令,配置用户名和 Email 地址:

    git config --global user.name hansb
    git config --global user.email hansb@mail.jj.cn
    
  3. 配置 SSH 密匙,为了能与 GitLab 正常交换代码,需要配置 SSH,参考文章2操作即可,然后将生成的 SSH 公匙提交到 GitLab 上就行了。

    (感觉通过 Git Gui.exe 来新增、查询 SSH 密匙也是可以的,但没有试)

  4. 安装 VSCode,并安装以下 git 相关的插件:

    image-20240514164018756

(2) 在 GitLab 上拉取代码

  1. GitLab 上由管理员开放相关存储库的权限。
  2. fork 需要开发的存储库:image-20240514162923731

  3. 然后在所有项目中就能看到自己 fork 出来的项目了,该项目位于远端:

    image-20240514163045433

    需要了解一下项目分支合作模式3

    d35c4c08fa5845ce5697b67006b549f

  4. 将远端的代码库克隆到本地,在 GitLab 网址上可以直接打开 VSCode 操作,然后选一个本地位置就行了。

(3) 存储库分支

  1. 在 VS2022 中打开该项目,可以通过 VS2022 提供的 Git 相关插件操作分支、提交修改等。

  2. 将操作路径切换到刚刚拉下来的分支,在命令行中执行以下命令:

    • 添加一个新的远端仓库,命名为 upstream,指向源仓库:

      git remote add upstream https://pscgit.jjmatch.cn/EVT/tkevtservice.git
      
    • 获取一下远端仓库的代码:

      git fetch upstream
      
  3. 在 VS2022 查看 Git仓库 ,可以看到配置好的远端分支:

    image-20240514184459925

  4. git 常用命令1git常用命令

3 安装 VS

  1. 安装 VS2022,直接双击 exe 安装即可。

  2. 安装 VC2010,因为团队代码的平台工具集都是用的 VisualStudio2010(V100),所以还需要安装【VC++ 2010学习版 (64bit)】以适配项目配置,该软件见个人的软件文件夹中,理论上装个 VS2010 也是同样的效果,但是 VC2010 比较轻量化,也足够用了,所以首推 VC2010。

    (注:软件目录下的【vc2010epr_enu】也可以同样配置好VC2010的配置,但是是英文的)

4 配置公共库

(1) 公共库

  1. 公共基础库,位于\\192.168.18.18\tksdk,需找辛祥义开一下权限(提供 ip 地址)。

  2. 在本地映射一个 T: 盘指向上述共享地址。

  3. 写一个同步脚本,保存成批处理文件 syncsdk.bat 4,在每次编译前执行文件同步:

    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在同一个路径下

image-20240515142447930

(3) 共享盘中没有的公共库

经对比,共享网盘 \\192.168.18.18\tksdk\other 目录下,部分文件夹(文件)缺失,需从朴宸电脑上拷贝过来,缺失文件列表如下:

5 配置项目

(1) 全局配置

  • 在 VS 中通过 “视图-属性管理器” 打开属性管理器,随便找到一个 Microsoft.Cpp.Win32.user ,右键 “属性”,修改用户的全局配置。

  • 在用户宏中增加宏定义,指向本地位置:

    image-20240820134403025

  • 在 “通用属性 - 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++ - 预处理器 - 预处理器定义” 中增加宏定义:

    image-20240515201617263

    内容如下:

    1
    
    _USE_32BIT_TIME_T;MYSQLPP_NO_DLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
    
  • 其它配置,例如字符集、附加库,以TKNOSService为例,无需修改即可。

    如需修改生成后执行文件,在 “生成事件 - 后期生成时间 - 命令行” 中修改对应的 .dat 文件即可。

(2) 项目配置

TKNOSService为例,上述全局配置好以后,右键 “生成” 就能正确编译出来了,无需修改单个项目的配置。

6 参考6

  1. 共享网盘文章:《Git教程By廖雪峰.pdf》 ↩︎ ↩︎2

  2. 4.3 服务器上的 Git - 生成 SSH 公钥 ↩︎

  3. 共享网盘文章:《平台支撑中心Git&GitLab操作说明(极简版).docx》 ↩︎

  4. 共享网盘文章:《数据部支持部程序开发指南v0.17.doc》 ↩︎

  5. 工作群文章:《TK的开发环境配置.pdf》 ↩︎ ↩︎2

  6. 来源:ChatGPT ↩︎

本文由作者按照 CC BY 4.0 进行授权