EPICS教程4-- 在Windows上安装EPICS base
4.1 介绍
4.1.1 EPICS
EPICS是用于构建控制系统的工具套件。你可以从EPICS网站About EPICS - EPICS Controls (epics-controls.org)获取基本概念。
传统上,一个EPICS安装始于从源代码编译核心部件("EPICS Base")开始。这个过程被这些说明涵盖:在Windows上从零开始并且使你理解你在哪里有一个运行的IOC以及从一个命令行shell连接它。其它How-Tos将指导进一步指导你。
4.1.2 在Windows上EPICS
虽然它不是主要的或者最广泛使用的目标平台,但EPICS底层库在Windows上有好的以及良好测试的实现。EPICS在Windows目标机上运行正常,快速和健壮。
4.1.3 Cygwin
如以前提到的,EPICS Base有它自己的所有必需底层服务的本地Windows实现。不需要经过Cygwin提供的Posix模拟。本地Windows实现移值性更好并且性能更好。除非你需要使用Cygwin,如果你正在使用一个用于Cygwin的二进制的供应商提供的库。
Cygwin作为一种用于EPICS的目标平台也被废弃了。
4.1.4 构建时间
构建EPICS Base所需时间取决于一些因素,包括处理器速度和文件系统,使用的编译器,构建模式(DLL或静态),可能的调试选项和其它。在中型双核机器上,一次EPICS 7的完整构建花费15到30分钟,能够在6到10分钟构建3.15分支。
使用make -j<n>使用多个CPU内核。
4.2 需要的工具
- C++编译器:MinGW(GCC)或者Microsoft的Visual Studio编译器(VS)
- 解包软件(7zip或类似的)
- GNU make(4.x)
- Perl
4.3 选择1:编译器
你将需要一个支持C++标准库的C++编译器。两个主要编译器由EPICS及其构建系统支持:
Microsoft的Visual Studio编译器(VS):在Windows平台上用于EPICS的可能地最广泛使用的编译器。"社区版"自由下载使用(你需要管理员权限来安装它。) 任何Visual Studio安装将需要用于编译器工具链的"C++ development"组件被安装。
EPICS使用Make构建系统。你可以使用Visual Stdio IDE,但EPICS不提供用于Visual Stdio的自身构建系统的任何项目文件或者配置。
MinGW(GCC)--用于Windows的最简化GNU:一个基于广泛使用的GNU编译器(就像VS编译器)的编译器工具链产生本地的Windows可执行文件。
两种编译器工具链可以创建共享库(DLLs)和静态库。在64位系统上,两者能够创建64位输出(在64位系统上运行)和32位输出(在32位和64位上运行)。
当使用C++时,库在那两个编译器工具链之间不兼容。当产生一个二进制(例如:一个IOC)时,所有被链接的C++代码必需统一地由VS或MinGW生成。(原因是对符号名不同的名称改变;在用另一个编译器产生的库中找不到链接一个可执行文件所需的符号,因为在那里它的名称不同。)
如果你需要链接厂家提供的二进制C++库,这将最可能决定你需要使用哪个编译器。
4.4 选择2:构建环境和工具安装
MSYS2(可用于windows7及以上)是一个非常完整的"就像linux"的环境。它包含一个Linux风格包管理器(pacman),这使得它非常容易安装MinGW工具链(32位和64位)和所有其它必需的工具。它也提供了一个bash shell。如果你习惯于使用Linux环境,你将喜欢在MYSYS2上工作。
没有管理员权限,可以安装,使用和升级MYSYS2。
由于最新的MinGW/GCC编译器是这个包必可或缺的部分,对使用MinGW编译器工具链强烈推荐MSYS2。
也可以从MSYS2 bash使用Visual Studio编译器。这需要一个使得Visual Studio环境设置被正确继承的中间batch脚本的一次设置。通过由EPICS_HOST_ARCH环境变量设置选择,产生的shell能够使用Visual Studio以及使用MinGW编译。
4.4.2 Chocolatey
Chocolatey是一个用于Windows带有一个舒适GUI的包管理器,使得易于安装和更新软件包(包含构建EPICS所需的工具)。在很多情况中,Chocolatey包包装了软件的本地Windows Installers。
使用Chocolatey需要管理员权限。
4.4.3 windows Installers
你也可以独立地按照所需地工具,直接使用它们的本地Windows Installers。
对于Perl,已经Strawberry Perl和ActivePerl都有效。StrawBerry Perl更受欢迎;它包含了GNU Make(如gmake.exe)和构建通道访问Perl模块(其是EPICS base的组件)所必需的MinGW/GCC编译器。
对于GNU Make,最简单的方法是在Strawberry Perl中包含的一个。否则,在EPICS网站上提供了Windows二进制。
本地Windows Installers经常需要管理员权限。
4.5 选择3:静态或DLL构建/部署
如果你配置EPICS构建系统来构建你的IOCs动态(例如,使用DLLs),它们需要它们已经链接的DLLs出现在目标系统上,在与IOC二进制相同的目录中或者在%PATH%环境变量中提到的目录中。
取决于你如何部署你的IOC到生产系统,在产生IOCs时,使用静态构建可能更容易。产生的二进制将大得多,但它们将不需要提供其它EPICS DLLs下运行在任何Windows系统。
当在单个目标机上运行很多EPICS IOCs,一个DLL的共享构建将导致更小的内存使用。DLL是一次在内存中并且由所有IOC二进制并发使用,而每个静态链接的二进制在内存中有它们自己的库的副本。
注意:当使用Visual Studio编译器时,编译使用对应构建DLLs和构建静态库的不同标记。在相同构建中,你不能产生静态和共享库。通过按顺序(在之间用make clean)构建,你可以在你的EPICS中提供两种选项,使得你的程序可以在静态或DLL构建之间做决定。或者你可以位你的安装只全局地提供一个选项,所有安装将必需使用它。
4.6 Windows路径名
当在其为构建部分的路径(包括make程序驻留的路径以及工作空间的路径)中有空格字符或括号时,基于Make的构建不能正常运行。
如果你不能对路径避免使用这些字符,对在任何路径设置和/或你的工作路径中对带有那些字符的所有路径部分使用Windows短路径(可以用dir /x显示)。
4.7 在路径中放入工具
无论你使用哪种shell和环境,工具(perl, make)应该最终出现%PATH%中,当只用它们的名称调用时,找到它们。
4.8 安装和构建
取决于你的选择设置,对应构建EPICS Base,构建IOC程序和运行它们的说明是不一样的。以下详细说明集中在两种常见的选择设置:使用与MinGW GNU编译器一起使用的MSYS2和使用与Visual Studio编译器一起使用的文本Windows命令提示。
对于任一种选择设置,必须为构建和运行程序设置环境。
4.8.1 使用MSYS2和MinGW编译器安装
MSYS2通过一个易用的包管理器有所有所需的可用工具,并且其bash shell看起来和用起来就像在Linux上工作。大部分Bash命令类似于它们的Linux版本。MYSYS2只对Windows 7以及以上可用。在Windows 8.1(64位)和windows 10(64位)上验证了以下过程。
安装工具
MYYS2提供了一个使用MinGW-w64工具链构建本地Windows程序的Bash Shell,Autotools,版本控制系统和其它工具。可以从它的官方网站(MSYS2)安装它。为64位Windows下载和运行installer("x86_64"),为32位Windows下载和运行"i686"。安装过程在网站上详细地解释了。这些说明假设你正在64位Windows上运行。
MYSYS安装地默认位置是C:\msys64。如果你没有管理员权限,你可以在你可以访问的任何位置安装MSYS2,例如:C:\Users\'user'\msys64(其中"user"为你的windows用户目录名)。我们在此文档中假设这个默认位置。一旦安装结束,你有用于启动一个shell的三种选项。这些选项之间的不同是选取要使用编译器工具链的环境变量的预设。启动"MSYS MinGW 64-bit"选项来使用MinGW 64位工具链,生成在64位Windows系统上运行的64位二进制。"MSYS MinGW 32-bit"选项将使用MinGW 32位工具链,生成将运行在32位以及64位Windows系统上运行的32位二进制。
再次:你单个安装了MSYS2,这些不同的shells只是使用不同编译器的设置。只需要进行一次MSYS2的安装和更新--对你那个,你可以使用任何shell选项。
用以下命令更新MSYS2:
$ pacman -Syu
在这结束后(使它关闭这个bash shell),再次打开bash并且再次运行相同命令来完成更新。对MYSY2安装的常规更新使用相同过程。一个最新系统显示:
$ pacman -Syu
:: Synchronizing package databases...
mingw32 is up to date
mingw64 is up to date
msys is up to date
:: Starting core system upgrade...
there is nothing to do
:: Starting full system upgrade...
there is nothing to do
安装必需的工具(perl已经是这个基本系统的部分了):
$ pacman -S tar make
具有"简单"名称的包是MYSYS2环境的部分并且对你在MSYS2上安装的所有编译器/工具链有效。
安装编译器工具链
作为MinGW工具链的组成部分的包对于64位工具链以前缀"mingw-w64-x86_64-"起始,或者对于32位工具链以"mingw-w64-i686-"起始。(“w64“部分标识主机系统将在使用32位MSYS环境时不同,例如:在一台32位Windows主机上。)
安装MinGW 32位和/或MinGW 64位工具链:
$ pacman -S mingw-w64-x86_64-toolchain
$ pacman -S mingw-w64-i686-toolchain
每种完整工具链需要大约900MB磁盘空间。如果你想要减小所需磁盘空间(到大约50%),在请问要按照哪些包组时,不是敲击回车,你可以选择编译EPICS base所需包的最小集合。
如果你不确定,检查你工具集完整并且安装了所有东西:
$ pacman -Q
...
make 4.3-1
perl 5.32.0-2
mingw-w64-x86_64-...
mingw-w64-i686-...
...
经常更新你的安装
如上所述,你可以在任何时候使用以下更新你完整安装(包括所有工具和编译工具链):
$ pacman -Syu
你应该定期做这件事。
下载和构建EPICS Base
启动"MSYS MinGW 64-bit" shell并且做:
$ cd $HOME
$ wget https://epics-controls.org/download/base/base-7.0.4.1.tar.gz
$ tar -xvf base-7.0.4.1.tar.gz
$ cd base-R7.0.4.1
$ export EPICS_HOST_ARCH=windows-x64-mingw
$ make
当使用MinGW 32位工具链时,必需使用"MSYS MinGW 32-bit" shell并且必需设置EPICS_HOST_ARCH为"win32-x86-mingw"。
注意:如果你正在通过ssh连接到你的MSYS2系统时,你需要设置和允许一个环境变量使用对应这个MinGW编译器的环境预设。在MSYS2的ssh daemon配置(/etc/ssh/sshd_config)中,添加这行:
AcceptEnv MSYSTEM
并且在你的(本地)客户端配置(~/.ssh/config)上,添加这行:
SetEnv MSYSTEM=MINGW64
去使用MinGW 64-bit编译器链(MINGW32来使用一个32-bit安装)。
在编译过程中,可能有警告,但应该没有错误。你可以选择任何EPICS Base版本来构建,这个过程保持相同。
缩短你构建的方式,请参考在"Installation on Windows"中"Build Time"。
从MSYS2 Bash快速测试
只要你没有添加你程序的位置到PATH环境变量(见以下),要运行命令,你必需提供完整路径或者cd到它们所在目录并且以./作为命令的前缀。
用在你Windows安装中实际Windows用户文件夹名替换'user'--MSYS2使用那个名称创建你的家目录。在本示例中,我们假设对应MSYS2的默认位置(C:\msys64)。
运行softIoc,并且如果一切正常,你应该看到一个EPICS提示:
$ cd /home/'user'/base-R7.0.4.1/bin/windows-x64-mingw
$ ./softIoc -x test
Starting iocInit
iocRun: All initialization complete
dbLoadDatabase("C:\msys64\home\'user'\base-R7.0.4.1\bin\windows-x64-mingw\..\..
˓→\dbd\softIoc.dbd")
softIoc_registerRecordDeviceDriver(pdbbase)
iocInit()
############################################################################
## EPICS R7.0.4.1
## Rev. 2020-10-21T11:57+0200
############################################################################
epics>
你可以用ctrl-c或者输入exit退出。
只要你在EPICS Base二进制的位置,它们将使用它们简单的名称有效。尝试像caput, caget, camonitor样的命令。
从Windows命令提示快速测试
打开Windows命令提示。'user'再次是Windows用户文件夹名。MSYS2 home目录是在MSYS2安装内部。如果你用动态链接(DLL)构建EPICS Base,为了找到这个C++库,你需要添加它们的位置到PATH。(再次,假定用默认路径和MinGW 64位工具链的64位MSYS2安装。)
>set "PATH=%PATH%C:\msys64\mingw64\bin;"
>cd C:\msys64\home\'user'\base-R7.0.4.1\bin\windows-x64-mingw
>softIoc -x test
Starting iocInit
############################################################################
## EPICS R7.0.4.1
## Rev. 2020-10-21T11:57+0200
############################################################################
iocRun: All initialization complete
epics>
你可以用ctrl-c或通过输入exit退出。
只要你在EPICS Base二进制的位置,它们将使用它们的简单名称都有效。尝试像caput,caget,camonitor的命令。
创建一个demo/test IOC
虽然softIoc二进制程序可以和多个不同db文件的实例一起使用,但你将需要在某些地方创建你自己的IOC。我们将使用makeBaseApp.pl脚本从已有程序模板创建一个测试的ioc。
让我们创建一个IOC,它接收2个过程变量(PVs)的值,把它们相加并且把结果存储到第三个PV。我们将使用MSYS2构建这个IOC。打开MSYS2 Mingw 64-bit shell。确认正确得设置了环境变量(见Setting the system environment)。
创建一个新目录testioc:
$ mkdir testioc
$ cd testioc
从testioc目录运行以下:
$ makeBaseApp.pl -t ioc test
$ makeBaseApp.pl -i -t ioc test
Using target architecture windows-x64-mingw (only one available)
The following applications are available:
test
What application should the IOC(s) boot?
The default uses the IOC's name, even if not listed above.
Application name?
接收默认名称并且按回车。那应该产生一个用于你testioc的框架。你可以在"Application Development's Guide"章节"Example IOC Application"中找到这个程序结构的完整细节。
$ ls
configure iocBoot Makefile testApp
现在为你的IOC创建一个描述PV的db文件。进入testApp/Db并且用以下记录详情创建test.db文件:
record(ai, "test:pv1")
{
field(VAL, 49)
}
record(ai, "test:pv2")
{
field(VAL, 51)
}
record(calc,"test:add")
{
field(SCAN,"1 second")
field(INPA, "test:pv1")
field(INPB, "test:pv2")
field("CALC", "A + B")
}
打开Makefile并且导航到:
#DB += xxx.db
删除#并且更改这个到test.db:
DB += test.db
返回到IOC testioc的根目录。进入到iocBoot/ioctest。修改st.cmd启动命令文件。
更改:
#原来
#dbLoadRecords("db/xxx.db","user=XXX")
#更改为
dbLoadRecords("db/test.db","user=XXX")
保存所有文件并且返回到MSYS2 Bash终端。确认正确地设置了这个架构:
$ echo $EPICS_HOST_ARCH
windows-x64-mingw
切换到testioc目录并且运行make:
$ cd ~/testioc
$ make
这应该为测试地ioc创建所有文件:
$ ls
bin configure db dbd iocBoot lib Makefile testApp
进入到iocBoot/ioctest。打开envPaths文件并且更改MSYS2相对路径为完整的Windows路径:
epicsEnvSet("IOC","ioctest")
epicsEnvSet("TOP","C:/msys64/home/'user'/testioc")
epicsEnvSet("EPICS_BASE","C:/msys64/home/'user'/base-7.0.4.1")
注意:你可以在这个文件内路径格式中使用Linux风格的前斜杠字符或者双后斜杠(\\)。
到此,你可以通过切换到这个IOC目录并且用你的启动命令脚本作为参数运行这个test.exe二进制,从一个MSYS2 Shell或者从一个Windows命令提示运行这个IOC。
在Windows命令提示中:
>cd C:\msys64\home\'user'\testioc\iocBoot\ioctest
>..\..\bin\windows-x64-mingw\test st.cmd
在MSYS2 shell中:
$ cd ~/testioc/iocBoot/ioctest
$ ../../bin/windows-x64-mingw/test st.cmd
在两种情况中,IOC应该像这样启动:
Starting iocInit
iocRun: All initialization complete
#!../../bin/windows-x64-mingw/test
< envPaths
epicsEnvSet("IOC","ioctest")
epicsEnvSet("TOP","C:/msys64/home/'user'/testioc")
epicsEnvSet("EPICS_BASE","C:/msys64/home/'user'/base-R7.0.4.1")
cd "C:/msys64/home/'user'/testioc"
## Register all support components
dbLoadDatabase "dbd/test.dbd"
test_registerRecordDeviceDriver pdbbase
Warning: IOC is booting with TOP = "C:/msys64/home/'user'/testioc"
but was built with TOP = "/home/'user'/testioc"
## Load record instances
dbLoadRecords("db/test.db","user='user'")
cd "C:/msys64/home/'user'/testioc/iocBoot/ioctest"
iocInit
############################################################################
## EPICS R7.0.4.1
## Rev. 2020-10-21T11:57+0200
############################################################################
## Start any sequence programs
#seq sncxxx,"user='user'"
epics>
检查是否正确地装载了你创建的数据库test.db:
epics> dbl
test:pv1
test:pv2
test:add
如你所见,3个过程变量被装载和可用。保持这个终端打开和运行。使用另一个终端测试这个过程变量。
打开用于监视test:add的另一个shell:
$ camonitor test:add
test:add 2020-10-23 13:39:14.795006 100
那个终端将连续地监视PV test:add。如果任何值变化被探测到了,将在这个终端中更新它。保持打开它来观察这种行为。
打开第三个shell。使用caput,像在以上温度示例中所在地修改test:pv1和test:pv2的值。你将在第二个终端中相应地看到它们之和的变化。
到此,你运行了一个IOC testioc,它装载了带有三个记录的数据库test.db。从其它进程,你可以使用通道访问连接到这些记录。如果你在test.db中再添加过程变量,你将必须再次make这个testioc程序并且重启这个IOC来装载这个新版本数据库。
你也可以用它们自己数据库和过程变量并行地创建和运行像这样的IOCs。只要记住:每个记录实例必须有用于通道访问正常运行地唯一名称。
4.8.2 使用Windows和Visual Studio编译器地安装
安装工具
有两种合理地选项。
使用Chocolatey
进入Chocolatey网站(Chocolatey Software | Chocolatey - The package manager for Windows)并且按照它们的说明下载和安装这个包管理器。使用Chocolatey,安装Stawberry Perl和Gnu make。
手动
使用在它们下载页面上可用的Windows Installer安装Strawberry Perl或者ActivePerl。Strawbery Perl包含了一个合适版本的GNU make。否则,你可以下载Andrew在https://epics.anl.gov/download/tools/make-4.2.1-win64.zip上提供的一个Windows可执行文件。解压到一个位置(路径必须不包含空格或括号)并且添加它到系统环境。
在Path中放入工具
确认工具的位置被加入到了系统环境变量Path中。在一个shell(命令提示)中,它们使用它们的简单名称必须是可调用的,例如:
>perl --version
This is perl 5, version 26, subversion 1 (v5.26.1) built for MSWin32-x64-multi-thread
(with 1 registered patch, see perl -V for more detail)
Copyright 1987-2017, Larry Wall
Binary build 2601 [404865] provided by ActiveState http://www.ActiveState.com
Built Dec 11 2017 12:23:25
...
>make --version
GNU Make 4.2.1
Built for x86_64-w64-mingw32
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
安装编译器
下载Visual Studio Installer并且安装(社区版是免费的)。确认你启用了编程语言/C++开发选项。在VS20022。
下载和构建EPICS Base
- 例如从https://epics-controls.org/download/base/base-7.0.4.1.tar.gz下载发行版。
- 解包它到一个工作目录。
- 打开一个Windows命令提示并且切换到你解包EPICS base所到的目录。注意:当前目录的完整路径名称一定不能包含任何空格或者括号。如果你工作的目录这样,你可以另做到相同目录中的cd,用Window短路径替换包含空白或括号的每个路径部分。
- 设置EPICS主机架构EPICS_HOST_ARCH(对于64位构建:windows-x64;对于32位构建:win32-x86)。
- 运行你安装的vcvarsall.bat脚本为你的构建设置环境(确切路径取决于安装的类型和语言)。
- 运行make(或者如果使用来自Strawberry Perl的版本,gmake)
D:\>cd EPICS
D:\EPICS>cd base-R7.0.4.1
D:\EPICS\base-R7.0.4.1>set EPICS_HOST_ARCH=windows-x64
D:\EPICS\base-R7.0.4.1>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat amd64
'C:\Program' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
D:\EPICS\base-R7.0.4.1>"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.2.4
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
D:\EPICS\base-R7.0.4.1>gmake
将可能有警告,但应该没有错误。你可以选择安装任何EPICS base,过程保持相同。缩短你构建的方式,请参考在Install on Windows中的"Build Time"章节。
从Windows命令提示快速测试
只要你没有添加你程序的位置到PATH环境变量(见Setting the system environment),你将必须提供完整路径来运行命令或者cd到它们所位于的路径中。
4.8.3 设置系统环境变量
为了通过使用所有EPICS命令的简单名称运行它们以及使用相同的设置构建更多EPICS模块,你可以为当前shell或者在Windows系统上用户设置三个环境变量:
- EPICS_BASE
- EPICS_HOST_ARCH
- PATH
注意:运行IOCs只需要正确地设置Path(在使用动态DLL构建时)。构建IOC程序需要EPICS_HOST_ARCH并且从设置了EPICS_BASE获益。
Path所需地设置
你正在构建你的二进制的方式决定了必须添加哪些路径到Path变量。
静态构建
为你的目标添加EPICS Base二进制程序的路径来能够在不指定它们完整路径下调用EPICS命令行工具。
这种设置是只为了方便并且非强制性的。你的IOC没有它运行。
动态(DLL)构建
- 为你的目标添加EPICS base二进制程序目录,使得EPICS DLLs被找到并且你能够在不指定路径下使用CLI工具。
- 如果你使用MinGW构建二进制程序并且想要在命令提示下或者通过一个快捷图标使用它们,添加MinGW二进制目录(“C:\msys64\mingw64\bin”),使得MinGW DLLs被找到。在MSYS2 Bash shell内部,这个位置默认被包含。
两种设置是强制的;前者用于所有构建,后者在声明的条件下。
从EPICS base使用一个批处理或者脚本设置环境
EPICS base提供脚本和批处理来帮助为运行EPICS命令和进行EPICS构建设置环境。
如果你使用Windows命令提示并且带有Strawberry Perl帮助的Visual Studio编译器编译你的EPICS Base,在名为startup文件夹中windows.bat批处理文件设置环境。你可能将必须编辑windows.bat来使它适配你的需求并且在进行EPICS命令或构建前从任何Windows命令提示调用它。
如果你使用MSYS2 bash shell,你类似地需要适配并且在进行EPICS命令或构建前从任何bash shell提示运行unix.sh shell脚本。
使用Windows Settings设置环境
这个方法需要较少功夫并且不需要从命令提示执行或调用特别的东西。进入启动菜单,输入"environment"并且选择"Edit environment variables for your account"。如果你有管理员权限并且想要全局地做它,你也可以选取"Edit the system environment variables"。
- 选择Advance选项卡,导航到Environment Variables按钮。那应该打开对应Windows环境设置的可编辑表格。
- 选择User Variable for 'user'选项,按NEW。
- 在这里添加EPICS Base路径。在Variable Name中,填入"EPICS_BASE"。对于Variable Value,输入你的EPICS Base安装的位置,例如:“C:\msys64\home’user’\base-R7.0.4.1”。
- 设置主机架构。在Variable Name中,填入"EPICS_HOST_ARCH"。对于Variable Value,填入"windows-x64-mingw"或者"windows-x64"(取决于你编译器的选择)。
- 导航到称为Path的变量。按Edit。
- 如果你正在使用MinGW编译器和动态(DLL)链接,添加对应对应MinGW64 DLLs的路径。按NEW并且输入"C:\msys64\mingw64\bin"。按ok。
- 添加对应EPICS命令和DLLs的路径。按NEW并且输入%EPICS_BASE%\bin\%EPICS_HOST_ARCH%。按ok两次,你做完了。
- 重启机器并且检查向caget和camonitor的EPICS命令是在任何位置否被识别成有效命令并且有效。
注意:默认,MSYS2 shell不继承父环境。要更改那种行为,你需要用参数-use-full-path启动这个shell。