SNMP++与Agent++ 交叉编译

1. 资源下载及说明

https://www.agentpp.com/download.html
地址下载 C++ APIs 栏下SNMP++及Agent++源码包

如果要支持v3版本的数据传送,还需要下载libdes-l-4.01a

目前下载版本:
SNMP++为3.5.1版本
Agent++为4.6.1版本

提醒:如果要编译带openssl的v3版本snmp库,请直接看第5部分

1.1 SNMP++

适用于C++开发SNMP协议的一套API库

1.2 Agent++

基于SNMP++ 库,方便开发SNMP Agent代理的API库,所以要使用Agent++要先编译SNMP++

2. libdes-l-4.01a编译

解压后cd到libdes目录下

修改Makefile中CC的值,改为对应交叉编译链即可。

CC=aarch64-linux-gnu-gcc

执行make即可在当前目录下找到生成的libdes.a库

3. snmp++编译

3.1 解压源码包
tar -xzvf snmp++-3.5.1.tar.gz 
3.2 执行configure

注意:在输出目录下创建lib64文件夹,将libdes.a放到其中,例如/home/vmuser/SNMP++/out/lib64
若不需要snmp v3版本内容,则去掉–enable-snmpv3即可

cd snmp++-3.5.1/

## 根据实际情况设置编译链及输出文件目录
./configure --host=aarch64-linux-gnu CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ --prefix=/home/vmuser/SNMP++/out --enable-snmpv3
3.3 编译

执行以下命令后可在–prefix参数设置的目录下找到编译好的库文件和所需的头文件

make 
make install

4.Agent++编译

4.1 解压源码包

解压后可在当前目录建立个out目录用于安装输出目录

tar -xzvf agent++-4.6.1.tar.gz 
4.2 设置PKG_CONFIG_PATH

snmp++编译完成后,编译Agent++时需要配置snmp++库安装的路径地址。执行configure前要设置PKG_CONFIG_PATH环境变量告诉configure脚本在哪里查找libsnmp++的pkg-config文件。假设你的libsnmp++的pkg-config文件位于/home/vmuser/SNMP++/out/lib/pkgconfig/,你可以运行以下命令:

export PKG_CONFIG_PATH=/home/vmuser/SNMP++/out/lib/pkgconfig/
4.3 执行configure
cd agent++-4.6.1/

## 根据实际情况设置编译链及输出文件目录
./configure --host=aarch64-linux-gnu CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ --prefix=/home/vmuser/Agent++/out
4.4 编译

执行以下命令后可在–prefix参数设置的目录下找到编译好的库文件和所需的头文件

make 
make install

5.snmp v3 使用openssl 编译

5.1 openssl编译

如果要使用IDEA等加密方式,就需要用到openssl来一起编译snmp v3版本的snmp++库而不是使用libdes

这种情况下,就得先编译openssl
openssl在github上开源,可以直接下载源码进行编译,地址为:https://github.com/openssl/openssl

注意:最新版snmp++要求的openssl版本要>= 1.1.0 (Oleg Bt)
注意:执行 config 时,加上 no-asm 表示不使用汇编代码加速编译。

我这里下载的版本为openssl1.1.1d,下载后解压,cd到对应目录下执行:

./config no-asm CXX=aarch64-linux-gnu-g++ CC=aarch64-linux-gnu-gcc --prefix=/home/vmuser/openssl-OpenSSL_1_1_1d/out

make

make install

其中 CXX对应实际编译链 --prefix为编译输出的目录

如果编译时遇到错误:unrecognized command line option ‘-m64’
可在编译前打开Makefile,将里面-m64都删除,然后重新make即可。

5.2 snmp++编译

将openssl编译输出的目录下的include中openssl目录拷贝到/snmp+±3.5.1/include/下
然后执行如下 ./configure 命令即可。

注意要加上CXXFLAGS=-fPIC
PKG_CONFIG_PATH: openssl库输出路径中lib/pkgconfig目录

./configure --host=aarch64-linux-gnu CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ CXXFLAGS=-fPIC --prefix=/home/vmuser/SNMP++/out --enable-snmpv3 --with-ssl PKG_CONFIG_PATH=/home/vmuser/openssl-OpenSSL_1_1_1d/out/lib/pkgconfig/

make

make install
5.3 agent++编译

在snmp库输出目录下新建一个lib64目录,将lib里的libsnmp++.a拷贝lib64下。
例如将cp /home/vmuser/SNMP++/out/lib/libsnmp++.a /home/vmuser/SNMP++/out/lib64/libsnmp++.a

–with-libsnmp-prefix:参数为snmp输出目录

执行:

./configure --host=aarch64-linux-gnu CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ --prefix=/home/vmuser/Agent++/out --with-snmp --with-libsnmp-prefix=/home/vmuser/SNMP++/out/

make

make install

编译完成后,agent库即在设置好的输出目录lib里。

这样我们就得到了libssl、libcrypto、libsnmp++、libagent++这四个库文件(.a及.so都有)

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值