本帖最后由 kira 于 2023-5-4 16:20 编辑
前言本文主要记录了EPICS Qt在Linux上的安装步骤。这里以loongnix操作系统为例,Ubuntu系统上编译安装步骤类似。 EPICS Qt是一个基于Qt的分层框架,使用Channel Access (CA) and PV Access(PVA)访问EPICS数据。它是为快速开发控制系统图形界面而设计的,最初是在澳大利亚同步加速器开发的。 安装EPICS这里不再写具体步骤了,总之就是非常简单,下载、解压、编译即可。具体步骤可以参考以前的文章。 安装Qt直接使用终端安装Qt - sudo apt update
- sudo apt install qtbase5-dev qt5-qmake qtcreator
- sudo apt install qtdeclarative5-dev qttools5-dev
- # 安装Qt Svg库,编译QWT时需要用到
- sudo apt install libqt5svg5-dev
复制代码 安装QWTQt EPICS推荐使用Qwt 6.1.4,如果在Ubuntu 20.04上直接通过终端安装也是这个版本。我使用Qwt 6.2.0编译,也是没有问题的,这里以Qwt 6.2.0为例。 - # 解压tar.bz2
- tar -jxvf qwt-6.2.0.tar.bz2
- # 解压zip
- unzip qwt-6.2.0.zip
复制代码解压完成后编译Qwt,使用QtCreator或者在终端使用qmake都可以。 然后手动将编译生成的文件复制到以下位置,例: - # 复制编译生成的qwt
- sudo cp -r build-qwt-unknown-Release/lib/* /usr/lib/loongarch64-linux-gnu/
- # 复制编译生成的designer插件
- sudo cp build-qwt-unknown-Release/designer/plugins/designer/libqwt_designer_plugin.so /usr/lib/loongarch64-linux-gnu/qt5/plugins/designer/
- # 复制qwt头文件
- sudo mkdir /usr/include/qwt
- sudo cp qwt-6.2.0/src/*.h /usr/include/qwt
复制代码 安装ACAIEPICS Qt依赖ACAI提供的Channel Access接口。 - cd /usr/local/epics/modules/
- git clone https://github.com/andrewstarritt/acai.git
- cd acai
- vi configure/RELEASE.local
- # 修改EPICS_BASE路径,例:
- # EPICS_BASE=/usr/local/epics/base-7.0.7
- make -j8
- # 等待编译完成
复制代码 安装google protobuf- sudo apt install protobuf-compiler libprotobuf-dev
复制代码 EPICS Qt首先克隆EPICS Qt的两个代码仓库。 - # framework and support libraries
- git clone https://github.com/qtepics/qeframework.git
- # QEGui display manager
- git clone https://github.com/qtepics/qegui.git
复制代码这里我将代码都放在~/QtEpics目录。 - export EPICS_HOST_ARCH=linux-loongarch64
- export EPICS_BASE=/usr/local/epics/base-7.0.7
- export ACAI=/usr/local/epics/modules/acai
- export QWT_INCLUDE_PATH=/usr/include/qwt
- export QWT_ROOT=/usr/lib/loongarch64-linux-gnu
- export QE_FRAMEWORK="$HOME/QtEpics/qeframework"
- # 支持PV Access
- export QE_PVACCESS_SUPPORT=YES
- # 支持Archiver Appliance
- export QE_ARCHAPPL_SUPPORT=YES
- export PROTOBUF_INCLUDE_PATH=/usr/include/google/protobuf
- export PROTOBUF_LIB_DIR=/usr/lib/loongarch64-linux-gnu
复制代码如果环境变量设置了支持Archiver Appliance,需要先编译archapplDataSup。 - cd ~/QtEpics/qeframework/archapplDataSup/
- make
复制代码编译完成后,可以看到~/QtEpics/qeframework/lib/linux-loongarch64目录下有libarchapplData.a、libarchapplData.so两个文件。 然后依次编译 qeframework qeplugin qegui。EPICS Qt文档说明需要修改configure/RELEASE文件,但我这里修改后似乎没有生效,可能是使用了Qt Creator的原因,只能通过上面的环境变量设置。 注意:这里设置完环境变量,需要直接通过终端打开Qt Creator。
- 编译qeframework ~/QtEpics/qeframework/qeframeworkSup/project/framework.pro
- 编译qeplugin ~/QtEpics/qeframework/qepluginApp/project/qeplugin.pro
- 编译qegui ~/QtEpics/qegui/qeguiApp/project/QEGuiApp.pro
编译过程中可能会遇到一些问题,汇总如下: - 找不到Qwt的头文件
解决办法: 修改qeframework/qeframeworkSup/project/common/common.pri
- INCLUDEPATH += $$(QWT_INCLUDE_PATH)
复制代码
- 找不到QEFramework的头文件
解决办法: 修改对应项目的项目文件
- +INCLUDEPATH += $$(QE_FRAMEWORK)/include
复制代码
最后将编译生成的文件复制到以下位置,例: - sudo cp ~/QtEpics/qeframework/lib/linux-loongarch64/libarchapplData.so /usr/lib/loongarch64-linux-gnu/
- sudo cp ~/QtEpics/qeframework/lib/linux-loongarch64/libQEFramework.so /usr/lib/loongarch64-linux-gnu/
- sudo cp ~/QtEpics/qeframework/lib/linux-loongarch64/designer/libQEPlugin.so /usr/lib/loongarch64-linux-gnu/qt5/plugins/designer/
复制代码运行QEGuiApp - cd ~/epics/qtepics/qegui/bin/linux-loongarch64
- ./qegui
复制代码 运行测试运行时环境变量设置,例: - export QE_ARCHIVE_TYPE=ARCHAPPL
- export QE_ARCHIVE_LIST="http://192.168.1.2:17665/mgmt/bpl"
- export EPICS_CA_ADDR_LIST="192.168.1.2:5732 192.168.1.3:6666"
复制代码
关于QEGui
QE Framework控件
|