-
Notifications
You must be signed in to change notification settings - Fork 20
Install Instructions
此wiki主要针对开发人员。首先感谢大家的支持,然后在使用过程中有任何问题欢迎issue反馈。
issue地址: https://github.com/startalkIM/startalk/issues
StarTalk PC是依赖了C++以及C++库Qt实现的一个跨平台客户端。
- 编译工具使用CMake。
- 框架部分采用了多模块、低耦合的结构。逻辑插件与UI插件分离,并采用EventBus进行数据传输; UI部分采用了插件方式加载, 插件与插件之间通过Qt的connect进行交互, 降低彼此间的耦合度。
- socket采用了系统级别Api。
主要是使用了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环境主要依赖vs进行编译, 另外Windows暂不支持Debug模式, 可以使用RelWithDebInfo模式进行debug。
-
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版本。
关于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++编译器。
- 依赖库都在 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编码
- 找不到Qt库的依赖
Linux环境主要以Ubuntu为例。
- 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
-
依赖库编译
- 依赖包下载
- 注意事项
- 请按照以上顺序下载并编译, 因为彼此之间有依赖关系
- zlib编译为静态链接库, 其他为动态链接库(shared)
- 依赖包下载
-
源码编译
#进入源文件根目录 $ cd ${root_dir} $ mkdir build $ cd build $ cmake -DCMAKE_BUILD_TYPE=Debug/Release .. #根据自己需要修改build版本 $ make
- 关于IDE, Linux环境可以选择vs code、Qt Creator和Clion。
- Xcode
- CMake (版本 >= 10.12)
- Qt (版本 >= 5.9.6)
- uuid
- 依赖库编译参考Linux编译
- 由于Qt版本问题, OS低于10.12版本不支持运行, 所以编译时也建议加编译参数 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 或者更高版本。
- 关于IDE, MacOS环境可以选择vs code、Qt Creator和Clion。
- 关于IDE设置可以参考Windows开发环境搭建