-
Notifications
You must be signed in to change notification settings - Fork 119
开发环境搭建
Hai Liang Wang edited this page Dec 9, 2021
·
13 revisions
Chatopera Language Understanding Service
https://github.com/chatopera/clause
参考文档前提准备。
对于操作系统和硬件,务必按照以上链接准备。
git clone https://github.com/chatopera/clause.git
默认为 osc
分支,管理源代码。
cd clause # 进入开发根目录
./admin/install-3rd/system.sh # 面向操作系统层面的依赖,每个操作系统只需要执行一次,需要免密码使用sudo命令的支持。
./admin/install-3rd/user.sh # 项目层面的的依赖,每个开发根目录下都执行一次。
以上两个脚本完成了下列依赖的安装:
- CMake, Node.js, gcc
- Boost
- thrift
- jsoncpp
- libevent
- Eigen3
- gflags
- protobuf
- gtest
- glog
- gperftools
- thrift
- activemq
其中,系统层面的依赖安装到/usr/local/
目录中,项目层面的依赖安装在clause/lib
,clause/include
中。查看 thirdparty
获得更多第三方包。
- 关于系统层面依赖的更多介绍
./admin/install-3rd/system.sh
该脚本大约执行 20mins ~ 50mins, 顺序执行cmake/system
里的脚本,一些脚本如下:
script | description | dependencies |
---|---|---|
001.corretto-jdk.sh | install amazon jdk, Default JAVA_HOME=/usr/lib/jvm/java-1.8.0-amazon-corretto
|
None |
001.nodejs.sh | install nodejs | None |
002.maven.sh | install maven3 | jdk |
- 项目层面的依赖
./admin/install-3rd/user.sh
该脚本大约执行30mins,顺序执行 cmake/user
下的脚本。
- 单独安装某一个依赖
也可以单独的对某个依赖进行安装,这时执行cmake/user
或cmake/system
下的脚本。
原因:内存不足 解决方案:增加内存,查看依赖环境硬件配置。
### 编译
mkdir -p build/debug
cd build/debug
cmake ../..
make
.
├── CMakeLists.txt # 顶层CMake文件
├── Doxyfile # API文档生成描述文件
├── Doxyfile.sh # API文档生成脚本
├── LICENSE # 软件授权声明
├── README.md # 顶层文档
├── admin # 项目管理命令
│ ├── dev # 开发辅助脚本
│ ├── docker # docker镜像相关
│ ├── formatter.sh # 格式化代码
│ ├── generator.sh # 生成CMake元数据
│ ├── install-3rd # 安装第三方依赖
│ ├── localrc.sample # 配置本地环境,需要开发者复制为localrc
│ ├── precompile.sh # 在编译应用前检查条件
│ └── release.sh # 发布新的docker-compose版本
├── bin # 一些依赖的可执行命令安装路径
├── build # 调试程序的输出路径
├── cmake # CMake相关
│ ├── default.cmake # 依赖关系描述
│ ├── miscs # 杂项
│ ├── modules # CMake模块化组织依赖
│ ├── system # 系统层面的依赖安装脚本
│ └── user # 项目层面依赖的安装脚本
├── docker-compose.yml # 服务编排描述
├── docs # API文档
├── include # 依赖的头文件目录
├── sample.env # docker服务的环境变量自定义文件,需要开发者复制为.env
├── share # 某些依赖输出的文档
├── src # 核心代码目录
│ ├── CMakeLists.txt # 遍历所有子目录,加载为CMake模块
│ ├── clause # clause模块源码
│ ├── distance # 文本相似度计算
│ ├── hat-trie # 构建前缀树存储自定义词典
│ ├── intent # intent模块源码,提供训练机器人接口
│ ├── jieba # jieba分词器源码
│ ├── lac # lac源码,包括训练脚本和论文
│ ├── ner # crfsuite工具包
│ ├── proto # protobuf描述文件
│ ├── redis # 连接redis的工具包
│ ├── sample # CMake模块的示例程序,用于快速添加新模块
│ ├── sep # 标点符号,表情和停用词管理
│ ├── sysdicts # sysdicts模块源码,提供系统词典
│ └── utils # 常用工具类
├── thirdparty # 第三方依赖
└── var # 数据文件或临时文件
├── activemq # activemq持久化
├── assets # 一些辅助文档
├── local # clause 和 intent 输出的文件路径
├── log # 日志
├── mysql # mysql持久化
├── redis # redis持久化
└── test # 测试用的文件
目前,clause使用 Astyle 进行代码格式化, 标准参数在.astylerc
中设置。
Astyle也作为系统层面的依赖进行安装,使用./admin/formatter.sh
对src
目录下的源码进行格式化。
./admin/formatter.sh
cat ./.astylerc # check out settings.
# Find more options
# http://astyle.sourceforge.net/astyle.html#_Usage
--style=google
--indent=spaces=2
--indent-switches
--indent-preprocessor
--break-blocks
--pad-oper
--recursive
--formatted
--suffix=none
代码标准使用 Google C++ Style Guide。
北京华夏春松科技有限公司 https://www.chatopera.com/