我已经安装了 osmocom asn1c compiler ,aper-prefix
分支,获取 TCAP 协议(protocol)的实现。
我用过respective script编译“.asn”文件。
C文件生成成功,但是在编译得到的C代码时,出现错误,与这行代码有关:
#include <EXTERNAL.h>
事实上,EXTERNAL.h文件丢失了(看来这个编译器不支持EXTERNAL类型)。 有人知道这个问题和可能的解决方案吗?
最佳答案
您有多种选择:
使用newer version of asn1c from this PR (仍未合并)
复制EXTERNAL.h来自 osmocom 存储库
将所有 asn 文件中的
EXTERNAL
重命名为EXTERNALt
,并在具有 EXTERNALt 的 asn 文件中添加以下内容。-- -- From "ITU-T Recommendation X.208", "34 The external type" -- EXTERNALt ::= [UNIVERSAL 8] IMPLICIT SEQUENCE {direct-reference OBJECT IDENTIFIER OPTIONAL, indirect-reference INTEGER OPTIONAL, data-value-descriptor ObjectDescriptor OPTIONAL, encoding CHOICE {single-ASN1-type [0] ANY, octet-aligned [1] IMPLICIT OCTET STRING, arbitrary [2] IMPLICIT BIT STRING}}
或者将其添加到单独的 asn 文件中并在需要时导入。
关于c - 编译osmocom asn1c生成的C代码时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53632962/