将ASN.1生成的类添加到C项目中

时间:2014-05-10 14:19:02

标签: c asn.1

我使用此编译器lionet.info/asn1c从ASN.1描述生成了一些C类。当我试图用GCC编译代码时,我有错误,这是他们的一个问题

  从asn_application.h中包含的文件中的

:45,                    来自client.c:10:constr_TYPE.h:15:28:错误:ber_tlv_length.h:没有这样的文件或目录constr_TYPE.h:16:25:   错误:ber_tlv_tag.h:没有包含此文件或目录的文件   asn_application.h:45,                    来自client.c:10:constr_TYPE.h:35:错误:在'ber_tlv_len_t'constr_TYPE.h:38:60之前的预期说明符限定符列表:   错误:ber_decoder.h:没有这样的文件或目录constr_TYPE.h:39:68:   错误:der_encoder.h:没有这样的文件或目录constr_TYPE.h:40:58:   错误:xer_decoder.h:没有这样的文件或目录constr_TYPE.h:41:60:   错误:xer_encoder.h:没有这样的文件或目录constr_TYPE.h:42:61:   错误:per_decoder.h:没有这样的文件或目录constr_TYPE.h:43:61:   错误:per_encoder.h:没有这样的文件或目录constr_TYPE.h:44:59:   errors:constraints.h:没有这样的文件或目录constr_TYPE.h:77:   错误:预期的声明说明符或'ber_tlv_tag_t'之前的'...'   constr_TYPE.h:77:错误:'ber_tlv_tag_t'声明为函数   返回一个函数constr_TYPE.h:77:warning:参数名称   (无类型)函数声明constr_TYPE.h:79:错误:   预期'=',',',';','asm'或'属性'之前   'asn_TYPE_outmost_tag'constr_TYPE.h:95:错误:预期   'asn_constr_check_f'之前的说明符限定符列表   constr_TYPE.h:144:错误:字段'tag'声明为函数   constr_TYPE.h:147:错误:之前的预期说明符限定符列表   'asn_constr_check_f'constr_TYPE.h:157:错误:字段'el_tag'已声明   作为函数在client.c中包含的文件:11:   asn_codecs_prim.h:8:29:错误:asn_application.h:没有这样的文件或   目录在client.c中包含的文件中:11:asn_codecs_prim.h:20:   错误:预期'=',',',';','asm'或'属性'之前   'ber_decode_primitive'asn_codecs_prim.h:21:错误:预期'=',',',   'der_encode_primitive'之前';','asm'或'属性'在文件中   包含在client.c中:15:ber_decoder.h:56:错误:预期   声明说明符或'ber_tlv_len_t'之前的'...'

在eclipe a got

  

调用:GCC C编译器gcc -O0 -g3 -Wall -c -fmessage-length = 0 -MMD   -MP -MF“src / BIT_STRING.d”-MT“src / BIT_STRING.d”-o“src / BIT_STRING.o”“../ src / BIT_STRING.c”../ src / BIT_STRING.c:5: 26:警告:   asn_internal.h:没有这样的文件或目录../src/BIT_STRING.c:6:24:   警告:BIT_STRING.h:没有这样的文件或目录   ../src/BIT_STRING.c:12:错误:预期'=',',',';','asm'或   'asn_DEF_BIT_STRING_tags'之前的'属性'   ../src/BIT_STRING.c:15:错误:预期'=',',',';','asm'或   'asn_DEF_BIT_STRING_specs'之前的'属性'   ../src/BIT_STRING.c:20:错误:预期'=',',',';','asm'或   'asn_DEF_BIT_STRING'之前的'属性'.. / src / BIT_STRING.c:48:   错误:预期')'在''标记之前../src/BIT_STRING.c:76:错误:   预期'=',',',';','asm'或'属性'之前   'BIT_STRING_encode_xer'../src/BIT_STRING.c:141:错误:预期')'   在''令牌之前: * [src / BIT_STRING.o]错误1

在eclipce中,我刚刚在src文件夹中添加了生成的类并添加了标题。

1 个答案:

答案 0 :(得分:1)

编译器错误看起来很神秘,但它们的目的是让人类阅读。通常,您看到的第一个错误是问题的最佳指示(假设只有一个)。

in file included from asn_application.h:45, from client.c:10: constr_TYPE.h:15:28: error: ber_tlv_length.h: No such file or directory

因此编译器的搜索路径中没有标题ber_tlv_length.h。看起来这是应该包含在lionet.info代码中的标题之一。因此,找出这些标头的位置,并将它们移动到您知道编译器已在搜索标头的位置,或者告诉编译器查看它们的位置(-I/path/to/headers/)。