Мне нужен был кодировщик/декодер asn1 BER, и я нашел его в составе компилятора asn1c (вот ссылка http://lionet.info/asn1c/blog/).
У меня нет проблем с компиляцией целиком, используя процедуру "configure, make, make install", но скомпилировать отдельно кажется невозможным.
Я пытаюсь скомпилировать функции кодировщика/декодера BER этого пакета в статическую библиотеку в NetBeans. Однако у меня большие проблемы с некоторыми глупостями «включить». Вот пример...
В файле asn1parser.h есть typedef нового типа с именем «asn1c_integer_t».
//some preprocessor statements removed to keep this post short...
typedef intmax_t asn1c_integer_t;
#include "asn1p_list.h"
#include "asn1p_oid.h" /* Object identifiers (OIDs) */
#include "asn1p_ref.h" /* References to custom types */
etc...
Однако некоторые из этих файлов, включенных в предыдущий файл (например, asn1p_oid.h), используют новый тип данных, определенный в предыдущем файле.
#ifndef ASN1_PARSER_OID_H
#define ASN1_PARSER_OID_H
typedef struct asn1p_oid_arc_s {
asn1c_integer_t number; /* -1 if not yet defined */
char *name; /* 0 if not defined */
} asn1p_oid_arc_t;
etc...
Для меня это не имеет смысла, и я продолжаю получать такие ошибки, как:
asn1parser.h:32: ошибка: ожидается ‘=’, ‘,’, ‘;’, ‘asm’ или ‘атрибут’ перед ‘asn1c_integer_t’
Может ли кто-нибудь помочь мне решить эту проблему?