我已经安装了aper-prefix
分支osmocom asn1c compiler,以获得TCAP协议的实现。
我已经使用respective script来编译“ .asn”文件。
C文件已成功生成,但是在编译获得的C代码时,将引发与以下代码行相关的错误:
#include <EXTERNAL.h>
实际上,缺少文件EXTERNAL.h(似乎此编译器不支持EXTERNAL类型)。 有人知道这个问题以及可能的解决方案吗?
答案 0 :(得分:1)
您有几种选择:
从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文件中,并在需要时导入。