1. asn1c的项目的地址:
官网:
GitHub - vlm/asn1c: The ASN.1 Compilerhttps://github.com/vlm/asn1c如下link ( vlm_master 分支)支持的asn功能更全一些:
mouse07410/asn1c: The ASN.1 Compiler (github.com)https://github.com/mouse07410/asn1c
2. 编译安装
从如上网址 git clone 代码,编译安装参考所下载的 文件 INSTALL.md。
3. 使用
参考所下载代码中文件夹 asn1c\doc 里面的 asn1c-quick.pdf 和 asn1c-usage.pdf.
下面我讲一下我的使用过程:
我将asn1c安装到 /usr/local/asn1c_vlm_master目录下,
1. 执行如下命令生成编解码的.h/.c文件
asn文件位于./input_asn目录 下,生成得.h/c位于./gen_code/release目录下
/usr/local/asn1c_vlm_master/bin/asn1c -fcompound-names -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-APER ./input_asn/*.asn -fprefix=NSD -D ./gen_code/release/
2. 生成代码文件夹(./gen_code/release)中makefile相关的文件
./converter-example.mk
./Makefile.am.libasncodec
3. 编译出lib库
3.1 将./gen_code/release/converter-example.mk 拷贝到./目录
3.2 修改./converter-example.mk文件,添加: CFLAGS += -I./gen_code/release
3.3 在./编译执行编译命令:
make -f converter-example.mk
3.4 编译完成后,在./目录下生成 libasncodec.a
4. 将生成的libasncodec.a 和 所有的.h 文件拷贝出来,后续就可编码解码asn文件了