ecFlow学习笔记:编译V5.X版本

目录

ecFlow已开源V5.X版本,目前最新版是5.3.0。 与之前的V4.X版本相比,编译源码最大的变化在于V5版本可以使用最新版的Boost。 另外,V5版本需要使用支持 C++11 的编译器。

下面介绍ecFlow V5版本的编译方法,在CMA-PI上测试通过。

准备

CMA-PI使用 Environment Modules 管理软件包,可以很方便使用自己编译的工具链。 为了使用带统计功能的 ecFlow-UI,我使用自己编译的一系列工具和库来编译 ecFlow。

编译器

已在CMA-PI上编译 GCC 9.2.0 。

CMake

为了识别最新版的 Boost,编译最新版的 CMake。

Qt

已在CMA-PI上编译 Qt 5.10.0。

Python

已在CMA-PI上编译 Python 3.6.4,使用静态链接库(动态链接库编译Boost有问题)。

源码

从官网下载 ecFlow 源码和 Boost 源码。

编译

将Boost源码路径设置为环境变量BOOST_ROOT,将ecFlow源码路径设为WK

编译 Boost

准备Boost环境,并设置Python 3可执行程序路径。避免自动选择系统的python 2版本。

./bootstrap.sh --with-python=$(which python3)

运行后生成project-config.jam文件中包含对Python 3的设置,类似

# Python configuration
import python ;
if ! [ python.configured ]
{
    using python : 3.6 : 
      "/g3/wangdp/lang/python/python3/install_static" ;
}

其中 3.6 后面是安装Python的目录。 我编译时候Boost会找不到Python的位置,需要在后面加上include和lib目录。 类似

# Python configuration
import python ;
if ! [ python.configured ]
{
    using python : 3.6 
      : "/g3/wangdp/lang/python/python3/install_static" 
      : /g3/wangdp/lang/python/python3/install_static/include/python3.6m 
      : /g3/wangdp/lang/python/python3/install_static/lib ;
}

接着在BOOST_ROOT目录下运行下面的命令,编译ecFlow需要使用的Boost库。

$WK/build_scripts/boost_build.sh

编译 ecFlow

另外创建一个build目录,在该目录下执行下面的cmake命令,生成编译项目。

cmake -DCMAKE_INSTALL_PREFIX=/some/path/to/install $WK

执行最终的编译过程并安装到执行的目录。

make 
make install

运行

ecflow v5版本的运行方式与v4版本一样,执行start_ecflow.sh启动ecflow服务,执行ecflow_ui启动UI界面。

ecFlow v5 版本的 ecflow-ui