2016-02-11 102 views
0

我正在向flatbuffer編譯器提供以下proto文件以生成.fbs文件。flatc(flatbuffer)編譯器不能以正確的方式處理嵌套名稱空間

文件:test.proto

message A { 
     optional int32 afoo = 1; 
     message B { 
     optional int32 bfoo_ = 1; 
     } 
     optional B bfoo= 2; 
    } 


    message C { 
    optional int32 abar = 1; 
    message B { 
     optional int32 bbar_ = 1; 
    } 
    optional B bbar = 2; 
    } 

在此之後,我跑:flatc --proto test.proto,這將產生.fbs文件

文件:test.fbs 從測試//生成.proto

 namespace ; 

     table A { 
      afoo:int; 
      bfoo:_A.B; 
     } 

     namespace _A; 

     table B { 
      bfoo_:int; 
     } 

     namespace ; 

     table C { 
      abar:int; 
      bbar:_C.B; 
     } 

     namespace _C; 

     table B { 
      bbar_:int; 
     } 

這裏要注意的是「B」已經被拉出到全局命名空間 之後我跑平-cpp test.proto,這eventuall y生成不正確的頭文件。含有B

 struct B FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table 

回答

相關問題