Skip to content

Install Instructions

chaocc.wang edited this page Jan 31, 2021 · 8 revisions

此wiki主要针对开发人员。首先感谢大家的支持,然后在使用过程中有任何问题欢迎issue反馈。
issue地址: https://github.com/startalkIM/startalk/issues


目录


简介

StarTalk PC是依赖了C++以及C++库Qt实现的一个跨平台客户端。

  • 编译工具使用CMake。
  • 框架部分采用了多模块、低耦合的结构。逻辑插件与UI插件分离,并采用EventBus进行数据传输; UI部分采用了插件方式加载, 插件与插件之间通过Qt的connect进行交互, 降低彼此间的耦合度。
  • socket采用了系统级别Api。

依赖库

Qt

主要是使用了Qt框架的UI部分,另外部分地方使用了Qt的Thread和Http组件。
Qt版本建议使用Qt5.9.6以及上,建议保持最新。
关于Qt库的安装将在下面各个平台的介绍中详细描述。
下载地址: https://download.qt.io/archive/qt/ (此地址可能被墙, 也可以访问国内镜像源: https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt)

其他第三方库

  • EventBus
    主要用于插件间数据传输。项目中包含源码。
  • zlib
    主要用于压缩, 建议使用 1211 版本, 链接为下载地址。
    Windows版本已经提供编译好的lib,其他平台需要自己编译。
  • openssl
    建议使用 1.1.1 版本, 链接为下载地址。
    Windows版本已经提供编译好的dll, 其他平台需要自己编译。
  • libcurl
    http组件, 链接为下载地址。
    Windows版本已经提供编译好的dll, 其他平台需要自己编译。
  • protobuf
    建议使用2.6.1版本。链接为下载地址。
    Windows版本已经提供编译好的dll, 其他平台需要自己编译。
  • qzxing
    主要用于二维码生成与识别。项目包含源码, 源码有部分修改。
  • quazip
    主要用于压缩、解压文件。项目包含源码, 源码有部分修改。
  • nlohmann json
    主要用于json处理, 项目包含源码。
  • breakpad
    主要用于崩溃反馈与分析, 项目包含源码, 源码有部分修改。

核心库

LogicBase 为核心库, 源码暂不开放, 使用时需要手动依赖并拷贝到运行目录。


Windows

Windows环境主要依赖vs进行编译, 另外Windows暂不支持Debug模式, 可以使用RelWithDebInfo模式进行debug。

Windows软件安装

  • visual studio 2017 或者 visual studio 2019
    关于vs的版本, 2017版本和2019版本都可以。建议使用2019版本在线模式安装, 可以根据自己的需要安装需要的模块。
    核心模块:

    • C++核心
    • Windows10 SDK
    • 用于 Windows 的 C++ CMake 工具
    • MSVC生成工具
  • Qt
    下载地址: https://download.qt.io/archive/qt/ (清华源: https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt)
    下载 qt-opensource-windows-xxx.exe (xxx位各个版本参数)。
    安装时建议不要同时安装x86和x64库, 选择单一版本即可。安装时除了核心库, 请手动添加 "Qt WebEngine"、和 "Qt Network Authorization"模块。

  • CMake
    可以使用CMake官方版本, 但是我还是建议使用vs版本。

Windows开发环境搭建

关于IDE, Windows环境首选vs吧, 其次是vs code、Qt Creator和Clion, Clion目前不支持代码Debug。

  • 使用vs时, 选用CMake方式打开CMakeList.txt文件。
  • 关于vs的CMake生成配置, 可以修改 CMakeSettings.json 文件。
  • 使用vs code时, 需要下载几个插件:
    • C++
    • CMake
    • CMake tools
    • Qt tools
  • 使用Qt Creator时同样需要采用CMake方式打开。
  • Clion使用时需要在设置里选择C/C++编译器。

Windows编译

  • 依赖库都在 https://github.com/startalkIM/startalk_pc/tree/master/Depends/ 下, 不需要自己编译。
  • 直接脚本编译可以参考: build_script
  • IDE编译需要注意 build target all。
  • 编译完成需要将依赖库dll全部拷贝到生成目录才可以正常运行。(拷贝依赖可以参考: copy_depends.bat)
  • 常见问题:
    • 找不到Qt库的依赖
      • 增加/修改Qt的环境变量配置
      • 修改CMakeList.txt中Qt路径配置的 QT_HOME
    • 无法解析Qt库部分符号
      • Qt库依赖问题
      • !!! 文件编码格式问题。Windows环境下如果源代码中包含中文, 建议直接将文件修改为 gbk编码或者utf-8 with bom编码

Linux

Linux环境主要以Ubuntu为例。

Linux软件安装

  • gcc / g++
  • CMake
    如果CMake版本太低, 可能需要手动编译。手动编译版本下载地址: http://chaocc.wang/package/cmake-3.17.0-Linux-x86_64.sh
  • Qt
    最低版本要求5.9.6。
    可以使用 apt-get/yum 按模块下载, 也可以在Qt官网下载安装包。
    如果使用 apt-get/yum方式下载, 以下为需要安装的模块
    qt5-default qtwebengine5-dev qtmultimedia5-dev libqt5x11extras5-dev qtquickcontrols2-5-dev libqt5svg5-dev
  • uuid

Linux编译

  • 依赖库编译

  • 源码编译

    #进入源文件根目录
    $ cd ${root_dir}
    $ mkdir build
    $ cd build
    $ cmake -DCMAKE_BUILD_TYPE=Debug/Release .. #根据自己需要修改build版本
    $ make
    

Linux开发环境搭建

  • 关于IDE, Linux环境可以选择vs code、Qt Creator和Clion。

MacOS

MacOS软件安装

  • Xcode
  • CMake (版本 >= 10.12)
  • Qt (版本 >= 5.9.6)
  • uuid

MacOS编译

  • 依赖库编译参考Linux编译
  • 由于Qt版本问题, OS低于10.12版本不支持运行, 所以编译时也建议加编译参数 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 或者更高版本。

MacOS开发环境搭建