首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nanopb条包选项在导入时引发错误

Nanopb条包选项在导入时引发错误
EN

Stack Overflow用户
提问于 2022-06-06 16:01:09
回答 1查看 34关注 0票数 0

我正在与纳米粒子斗争,以获得另一个包的枚举,其中有* mangle_names:M_STRIP_PACKAGE在.options文件中。下面是一种简单地再现问题的方法:

我有一个root_folder,包含folder_A和folder_B。在folder_A中,有file_A.proto和file_A.options:

file_A.proto:

代码语言:javascript
复制
syntax = "proto2";

package folder_A;

enum my_enum {
    ENUM_0 = 0;
    ENUM_1 = 1;
    ENUM_2 = 2;
}

file_A.options:

代码语言:javascript
复制
* mangle_names:M_STRIP_PACKAGE

在folder_B中,我有file_B.proto:

代码语言:javascript
复制
syntax = "proto2";

package folder_B;

import "folder_A/file_A.proto";

message dummy  {
    required folder_A.my_enum value  = 1;
}

我尝试使用以下命令生成proto文件:

nanopb_generator.py -D . -I . -I .\folder_B\ .\folder_A\file_A.proto .\folder_B\file_B.proto

错误Exception: Could not find enum type folder_A_my_enum while generating default values for folder_B_dummy.导致脚本失败

但是如果我删除了file_A.options,它就能正常工作。另外,如果我用一条消息替换枚举,那么即使在file_A.options中,它也能正常工作。

我的问题是:您知道是否可以同时使用* mangle_names:M_STRIP_PACKAGE选项和导入枚举?

我用的是纳米粒子-0.4.5。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-06-06 17:29:56

当前,当有来自另一个包的导入时,M_STRIP_PACKAGE无法工作。我已经将问题添加到问题跟踪器:https://github.com/nanopb/nanopb/issues/783

只要所有导入的文件都属于同一个包,并且具有相同的名称mangling设置,带有名称mangling的导入看起来就会正常工作。

同样值得怀疑的是,当您使用多个包名时,从类型中去掉包名是否是一个好主意。这听起来像是名字碰撞的秘方。

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

https://stackoverflow.com/questions/72520392

复制
相关文章

相似问题

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