x-msg-im-sdk 编译注意事项(主要是windows),可解决报: google/protobuf/message.h: No such file or directory等问题

编译前准备

查看x-msg-im的“编译在windows系统上运行的驱动”准备文档
按照以上文档操作后,仍出现问题,可按照以下注意事项进行问题排除,如果还是编译不成功,可加群721779037进行讨论

注意事项:

1、严格遵守版本限制,特别是protobuf ,尽量和要求的一致,下面的百度网盘是基于mingw gcc版本编译的protobuf-3.5.1下载地址,也可以自行编译,去protobuf的github上找到对应版本源码,然后迁下来进行编译,

链接: https://pan.baidu.com/s/1AiWFmudjooSNhG2rv1dKQA 
提取码: 4ac6 复制这段内容后打开百度网盘手机App,操作更方便哦

2、确保环境安装完成方法:在git bash命令窗口或者msys2命令窗口(由于我的机子在msys2上进行编译会很慢,因此我选择了在git bash上进行编译)分别输入
gcc, make, cmake, java, mvn,protoc --version 以上命令都不会报 xxx:command not found则代表可以正确访问对应环境,如果无法访问则输入 env命令查看环境变量是否配对,
在这里插入图片描述
在这里插入图片描述
3、在window上进行编译,注意不要漏了以下环境变量设置

//以下都是直接在当前命令窗口设置的局部环境变量,只能在当前命令窗口可用
//设置当前编译环境是在windows系统中
export PLAT=WINDOWS    

//设置protobuf环境变量 PROTOBUF 
//后面写的是protobuf的解压路径 代表c盘下的util目录下的protobuf
//如果编译的时候出现 google/protobuf/message.h: No such file or directory基本就是protobuf环境变量没有设置好

export PROTOBUF=/c/util/protobuf-3.5.1

//编译配置
export CXX_FLAGS="-g3 -O3"
export MAKE_J="-j3"

4、在迁需要编译的x-msg-im-sdk源码时,注意,如果文件后面是带有@符号的均是引用目录,不能直接通过用根目录的 git clone下载下来因为这样只是下载下来一个空目录,需要进入目录里面再复制此目录的clone地址进行下载或者使用git clone --recursive命令进行项目的clone如图
在这里插入图片描述

在这里插入图片描述
5.打包出来的x-msg-im-sdk-ffi.dll会比较大,可以用strip libx-msg-im-client-ffi.dll命令进行处理减小体积

### 解决 `error: unknown type name 'ECS_MQ_MSG_TYPE'` 此错误表明编译器不认识 `ECS_MQ_MSG_TYPE` 这个类型名。需要确保该类型已经被定义,且定义该类型的头文件已被正确包含。 ```c // 假设类型定义在 ecs_mq.h 中 #include "ecs_mq.h" // 使用 ECS_MQ_MSG_TYPE ECS_MQ_MSG_TYPE msg; ``` 同时,要检查头文件的包含路径是否正确。若头文件位于不同目录,可能需要指定包含路径。 ```c // 假设头文件在 include 目录下 #include "../include/ecs_mq.h" // 使用 ECS_MQ_MSG_TYPE ECS_MQ_MSG_TYPE msg; ``` 另外,要检查编译选项,确保编译命令中包含了正确的 `-I` 选项来指定头文件的搜索路径。 ```sh gcc -I/path/to/include main.c -o main ``` 还要检查类型定义的作用域是否正确,以及 `ECS_MQ_MSG_TYPE` 的拼写是否正确,因为 C 和 C++ 是区分大小写的,拼写错误会导致编译器无法识别该类型。 ### 解决 `/include/ECS_cGPB.h:21:10: fatal error: protobuf-c/protobuf-c.h: No such file or directory` 此错误说明编译器找不到 `protobuf-c/protobuf-c.h` 头文件。可以按照以下方法解决: 1. 确认 `protobuf-c` 库是否已经安装。若未安装,需要安装该库。以 Ubuntu 为例,可以使用以下命令安装: ```sh sudo apt-get install libprotobuf-c-dev ``` 2. 检查头文件的包含路径。如果 `protobuf-c` 库安装在非标准路径下,需要在编译命令中指定包含路径。 ```sh gcc -I/path/to/protobuf-c/include main.c -o main ``` 3. 在 IDE 中配置头文件路径。若使用的是 Visual Studio 等 IDE,需要在项目设置中添加 `protobuf-c` 库的头文件路径,类似于引用[3]中配置 OpenCV 头文件路径的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值