C/C++ 开发示例

更新时间:
2024-03-26
下载文档

C/C++ 开发示例

本节以使用 C/C++ 开发并运行于 SylixOS 或者 Linux 的微服务为例介绍微服务的开发方法。

前提条件

SylixOS 环境

已完成 入门须知 中要求的开发环境搭建,详见 搭建 SylixOS 开发环境

  • RealEvo-IDE 与 RealEvo-CloudNative 安装完成。
  • SylixOS ECS Base 与云原生 SDK 构建完成。

Linux 环境

已完成 入门须知 中要求的开发环境搭建,详见 搭建 Linux 开发环境搭建 Linux 运行环境

  • 完成 SDK 的下载与注册。

  • 完成其他开发环境配置。

操作步骤

SylixOS 环境

步骤 1:创建 SylixOS App

  1. 打开 RealEvo-IDE 界面,在上方导航栏中单击 File > New > SylixOS App

  2. 在 SylixOS App 创建工程界面的 Project name 中填入工程名如 HelloVSOA,单击 Next

  3. 在 SylixOS App Base 配置界面的 SylixOS Base Project 中,单击右侧 File SystemWorkspace 选择如上已创建的 SylixOS ECS Base 工程,单击 Finish

  4. 在生成的工程中的 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:配置头文件路径

  1. HelloVSOA 工程上单击右键,选择 Properties,进入工程属性配置页面。

  2. 在工程属性配置页面左侧导航栏中,单击 SylixOS Project > Compiler Setting,进入编译配置界面。

  3. 在编译配置界面上方的标签中,单击 Include Path 进入头文件配置界面。

  4. 在头文件配置界面中单击右侧的 Workspace ,选择添加如下两个路径:

    说明:

    添加的两个路径为云原生 SDK 中的 VSOA 库头文件所在目录 libjson 和 libvsoa。

步骤 3:配置库文件链接

  1. 在工程属性配置页面左侧导航栏中,单击 SylixOS Project > Linker Setting,进入链接配置界面。

  2. 在链接配置界面中,单击右侧 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++ 语言版本的位置服务功能,位置服务编译时应当链接该库
  3. 在链接配置界面上方的标签中,单击 Library Path 切换至库路径配置界面。

  4. 在库路径配置界面右侧单击 Workspace 选择添加如下库路径:

步骤 4:编译 SylixOS App

  1. HelloVSOA 工程上单击右键,选择 Build Project 编译工程,或者单击 RealEvo-IDE 工具栏中的 🔨 进行编译。

  2. 编译过程中 Console 会有以下输出,提示 Success 则表示编译成功。对应的可执行文件 HelloVSOA 将生成在工程的 Debug 目录下。

Linux 环境

以 AcoSail 为例说明 Linux 下的 VSOA 开发过程。

步骤 1:创建代码工程

  1. 执行如下命令,在工程目录创建一个空的文件夹,如 helloVSOA。

    [acosail@AcoSail2]~$ mkdir -p /path/to/workspace/helloVSOA
    
  2. 建议使用图形化文本编辑器进行源码编辑,可以使用 VSCode 打开 helloVSOA 文件夹。

  3. 添加新的代码文件 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);
    }
    
  4. 添加新的文件 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:编译工程

  1. 使用终端编译 helloVSOA 工程。

    [acosail@AcoSail2]~$ cd /path/to/workspace/helloVSOA/
    [acosail@AcoSail2]~/path/to/workspace/helloVSOA$ make
    
  2. 编译过程中,当终端显示以下内容则表示编译成功,对应的可执行文件 helloVSOA 将生成在工程的 build 目录下。

文档内容是否对您有所帮助?
有帮助
没帮助