编译osmocom asn1c生成的C代码的问题
Problem in compiling C code generated by osmocom asn1c
我已经安装了 osmocom asn1c compiler,aper-prefix
分支,以获得 TCAP 协议的实现。
我已经使用 respective script 来编译“.asn”文件。
C文件生成成功,但是在编译得到的C代码时,报错,与这行代码有关:
#include <EXTERNAL.h>
其实是缺少文件EXTERNAL.h(貌似是这个编译器不支持EXTERNAL类型)。
有人知道这个问题和可能的解决方案吗?
您有多种选择:
使用一个newer version of asn1c from this PR(仍未合并)
从 osmocom 存储库中复制 EXTERNAL.h
将所有 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 文件中并在需要的地方导入。
我已经安装了 osmocom asn1c compiler,aper-prefix
分支,以获得 TCAP 协议的实现。
我已经使用 respective script 来编译“.asn”文件。
C文件生成成功,但是在编译得到的C代码时,报错,与这行代码有关:
#include <EXTERNAL.h>
其实是缺少文件EXTERNAL.h(貌似是这个编译器不支持EXTERNAL类型)。 有人知道这个问题和可能的解决方案吗?
您有多种选择:
使用一个newer version of asn1c from this PR(仍未合并)
从 osmocom 存储库中复制 EXTERNAL.h
将所有 asn 文件中的
的 asn 文件中添加以下内容EXTERNAL
重命名为EXTERNALt
并在具有 EXTERNALt.-- -- 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 文件中并在需要的地方导入。