C/C++ 环境验证
本节以使用 C/C++ 开发并运行于 SylixOS 或者 Linux 的微服务为例验证微服务的开发环境。
SylixOS 环境
前提条件
已完成环境搭建,详见 搭建 SylixOS 开发环境 和 搭建 SylixOS 运行环境:
- RealEvo-IDE 与 RealEvo-CloudNative 安装完成。
- SylixOS ECS Base 与云原生 SDK 构建完成。
操作步骤
步骤 1:创建 SylixOS App
打开 RealEvo-IDE 界面,在上方导航栏中单击 File > New > SylixOS App。
在 SylixOS App 创建工程界面的 Project name 中填入工程名如
HelloVSOA
,单击 Next。在 SylixOS App Base 配置界面的 SylixOS Base Project 中,单击右侧 File System 或 Workspace 选择如上已创建的 SylixOS ECS Base 工程,单击 Finish。
在生成的工程中的
HelloVSOA.c
文件内输入如下应用程序代码:#include <stdio.h> #include <vsoa_parser.h> int main (int argc, char **argv) { const char *version = vsoa_parser_version(); while (1) { printf("Hello VSOA! Version %s\n", version); sleep(1); } return (0); }
说明:
- 此示例仅用于演示微服务应用的创建过程,并非一个完整的微服务应用。
- 更多关于 VSOA C 语言编程的信息请参考 C 语言编程手册。
步骤 2:配置头文件路径
在
HelloVSOA
工程上单击右键,选择 Properties,进入工程属性配置页面。在工程属性配置页面左侧导航栏中,单击 SylixOS Project > Compiler Setting,进入编译配置界面。
在编译配置界面上方的标签中,单击 Include Path 进入头文件配置界面。
在头文件配置界面中单击右侧的 Workspace ,选择添加如下两个路径:
说明:
添加的两个路径为云原生 SDK 中的 VSOA 库头文件所在目录 libjson 和 libvsoa。
步骤 3:配置库文件链接
在工程属性配置页面左侧导航栏中,单击 SylixOS Project > Linker Setting,进入链接配置界面。
在链接配置界面中,单击右侧 Name 添加如下三个库名称:
说明:
VSOA 的不同节点应当链接不同的库,VSOA 不同节点的概念可参考 了解 VSOA 章节。
VSOA 提供的库文件说明如下:
库文件 说明 libvsoa-json.so 提供 C/C++ 语言版本的 JSON 功能 libvsoa-server.so 提供 C/C++ 语言版本的服务端功能,服务端编译时应当链接该库 libvsoa-client.so 提供 C/C++ 语言版本的客户端功能,客户端编译时应当链接该库 libvsoa-parser.so 提供 C/C++ 语言版本的参数解析功能 libvsoa-position.so 提供 C/C++ 语言版本的位置服务功能,位置服务编译时应当链接该库 在链接配置界面上方的标签中,单击 Library Path 切换至库路径配置界面。
在库路径配置界面右侧单击 Workspace 选择添加如下库路径:
步骤 4:编译 SylixOS App
在
HelloVSOA
工程上单击右键,选择 Build Project 编译工程,或者单击 RealEvo-IDE 工具栏中的 🔨 进行编译。编译过程中 Console 会有以下输出,提示 Success 则表示编译成功。对应的可执行文件
HelloVSOA
将生成在工程的 Debug 目录下。
Linux 环境
前提条件
已完成环境搭建,详见 搭建 Linux 开发环境 和 搭建 Linux 运行环境:
完成 SDK 的下载与注册。
完成其他开发环境配置。
以 AcoSail 为例说明 Linux 下的 VSOA 开发过程。
操作步骤
步骤 1:创建代码工程
执行如下命令,在工程目录创建一个空的文件夹,如 helloVSOA。
[acosail@AcoSail2]~$ mkdir -p /path/to/workspace/helloVSOA
建议使用图形化文本编辑器进行源码编辑,可以使用 VSCode 打开 helloVSOA 文件夹。
添加新的代码文件
helloVSOA.c
并输入如下应用程序代码。#include <stdio.h> #include <unistd.h> #include <vsoa_parser.h> int main (int argc, char **argv) { const char *version = vsoa_parser_version(); while (1) { printf("Hello VSOA! Version %s\n", version); sleep(1); } return (0); }
添加新的文件
Makefile
并输入如下代码。CC = gcc CXX = g++ LD = gcc # src & directory config INCDIR := -I"/usr/include/vsoa" OUTDIR := build OBJDIR := $(OUTDIR)/obj # compile config DSYMBOL = -DVSOA OPTIMIZE := -O2 LINK_OPTION = -Wl,-rpath=/usr/lib/vsoa LINK_DEP_LIB = -lvsoa-parser -lpthread LINK_INC = -L/usr/lib/vsoa CFLAGS = $(DSYMBOL) $(INCDIR) $(OPTIMIZE) -c GCC = $(CC) $(CFLAGS) # target config TARGETS += $(OUTDIR)/helloVSOA all: $(TARGETS) @echo "build $(TARGETS) done!" $(OUTDIR)/helloVSOA : ./helloVSOA.c mkdir -p $(OBJDIR) $(GCC) ./helloVSOA.c -o $(OBJDIR)/helloVSOA.o $(LD) $(LINK_OPTION) -o $(OUTDIR)/helloVSOA \ $(OBJDIR)/helloVSOA.o $(LINK_INC) $(LINK_DEP_LIB) clean: rm -rf $(OBJDIR)/helloVSOA.o rm -rf $(TARGETS)
步骤 2:编译工程
使用终端编译
helloVSOA
工程。[acosail@AcoSail2]~$ cd /path/to/workspace/helloVSOA/ [acosail@AcoSail2]~/path/to/workspace/helloVSOA$ make
编译过程中,当终端显示以下内容则表示编译成功,对应的可执行文件
helloVSOA
将生成在工程的build
目录下。