首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MIPS目标系统上编译protobuf-c的问题

在MIPS目标系统上编译protobuf-c的问题
EN

Stack Overflow用户
提问于 2015-01-14 18:35:14
回答 1查看 530关注 0票数 0

这是一个交叉编译问题。

我创建了xxxx.proto并使用protobuf-c项目生成了C代码。在x86 linux上编译成功。

但是当我为MIPS交叉编译它时,它出现了编译错误。我使用buildroot编译了protobuf,protobuf-c。而工具链就是魔法工具。

源代码如下所示。

代码语言:javascript
复制
#include <string.h>
#include "egmessage.pb-c.h"  //header file that protobuf-c generated. I never touched it. 

int main (void)
{
    printf("Hello, world.");
    return 0;
}

我尝试使用下面的命令编译这段代码。

代码语言:javascript
复制
mips-linux-gnu-gcc egmessage.pb-c.c test.c -o extest -I/home/vagrant/tools/buildroot-2014.11/output/staging/usr/include -lprotobuf-c

然后我得到编译错误,如下所示。

代码语言:javascript
复制
In file included from test.c:6:0:
egmessage.pb-c.h:20:1: error: expected '=', ',', ';', 'asm' or '__attribute__' b
efore 'typedef'
 typedef struct _ControlMessage ControlMessage;
 ^
egmessage.pb-c.h:35:23: error: unknown type name 'ControlMessage'
                      (ControlMessage         *message);
                       ^
egmessage.pb-c.h:37:22: error: unknown type name 'ControlMessage'
                      (const ControlMessage   *message);
                      ^
egmessage.pb-c.h:39:22: error: unknown type name 'ControlMessage'
                      (const ControlMessage   *message,
                      ^
egmessage.pb-c.h:42:22: error: unknown type name 'ControlMessage'
                      (const ControlMessage   *message,
                      ^
egmessage.pb-c.h:44:1: error: unknown type name 'ControlMessage'
 ControlMessage *
 ^
egmessage.pb-c.h:50:23: error: unknown type name 'ControlMessage'
                      (ControlMessage *message,
                       ^
egmessage.pb-c.h:54:18: error: unknown type name 'ControlMessage'
                  (const ControlMessage *message,
                  ^
test.c:8:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int'

 int main (void)
 ^

错误消息说它要使用几个符号。你有过这样的经历吗?

EN

回答 1

Stack Overflow用户

发布于 2015-01-15 18:19:35

我找到原因了。我使用了我手动编译的协议。该版本与buildroot的protobuf版本不同。我应用了buildroot的protobuf并重新编译了proto文件。然后它就成功了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27940874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档