c - 编译osmocom asn1c生成的C代码时出现问题

标签 c ss7 asn.1

我已经安装了 osmocom asn1c compileraper-prefix 分支,获取 TCAP 协议(protocol)的实现。 我用过respective script编译“.asn”文件。 C文件生成成功,但是在编译得到的C代码时,出现错误,与这行代码有关:

#include <EXTERNAL.h>

事实上,EXTERNAL.h文件丢失了(看来这个编译器不支持EXTERNAL类型)。 有人知道这个问题和可能的解决方案吗?

最佳答案

您有多种选择:

  1. 使用newer version of asn1c from this PR (仍未合并)

  2. 复制EXTERNAL.h来自 osmocom 存储库

  3. 将所有 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/

相关文章:

c++ - ASN1C DER解码器

ASN.1 自动标签和可扩展性隐含属性

c - 有什么办法可以让下面的代码更加高效吗?

将十六进制值转换为字符串

c++ - ASN1 对象标识符名称

java - 使用 mobicents 的 MAP 界面

c - 如何在 C 中使用 setfillstyle() 和 textcolor()

c - 是否有某种方法可以对结构进行排序,同时仅使用指针将其传递到 void 函数中?

java - 在 Eclipse 上使用 jss7 构建 ATI 客户端