Window下使用CygWin编译ipmitool.exe
准备工作
声明:本文操作环境为:window10版本
操作前需要做好如下准备:
1、下载CygWin,下载链接: cygwin
2、安装CygWin
3、ipmitool源码包 ipmitool-IPMITOOL_1_8_18,下载地址: sourcecode
安装CygWin
1、双击刚刚下载的文件:setup-x86_64.exe
2、然后选择下一步,选择需要安装的路径和保存文件的路径:
3、选择下载网络:
找不到时手动添加国内镜像:http://mirrors.163.com/cygwin/
4、选择需要的文件包
编译ipmitool原则上需要以下几个包:
Cygwin packages:依赖包
1、gcc-core (在 Devel 目录下)
2、make (在 Devel 目录下)
3、openssl-devel
包之间的其他依赖关系,安装软件会自动选择上
通过搜索对应的包名称,将其状态选为Install,后面工具就会将其下载并安装
5、接下来等安装完成即可,并对是否安装成功进行验证
cygcheck -c cygwin
会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。
然后依次输入如下命令,如果显示一些版本信息,这说明安装正确
gcc --version
g++ --version
make --version
gdb --version
显示结果示意如下:
编译ipmitool
1、打开cygwin ,cd到源码目录
cd E:\ipmitool-1.8.18
2、运行bootstrap脚本,生成configure
./bootstrap
4、配置编译项,主要是指定编译的接口。这里只指定lan、lanplus接口(不同平台支持不同的接口,–enable- intf-open为linux专用接口,windows不支持)
./configure --enable-intf-lan --enable-intf-lanplus
配置完成后,可以看到你指定的接口已经标记为yes。一般显示如下:
ipmitool 1.8.18-csv
Interfaces
lan : yes
lanplus : yes
open : no
free : no
imb : no
bmc : no
usb : no
lipmi : no
serial : yes
dummy : no
Extra tools
ipmievd : yes
ipmishell : no
5、使用make进行编译
make
等待执行完成,在ipmitool-1.8.18/src/.libs下存放的是真实的ipmitool.exe可执行文件
E:\ipmitool-1.8.18\src\.libs>ls
ipmievd.exe ipmitool.exe lt-ipmievd.c
ipmievd_ltshwrapper ipmitool_ltshwrapper lt-ipmitool.c
6、制作独立副本ipmitool
将编译好的ipmitool和cygwin静态库(我安装的cygwin在C:\cygwin64目录)提取出来存放在一起,就可以在没有安装cygwin的环境使用了。
E:\ipmitool-1.8.18\src\.libs\ipmitool.exe
D:\cygwin64\bin\cygcrypto-1.0.0.dll
D:\cygwin64\bin\cygwin1.dll
D:\cygwin64\bin\cygz.dll
D:\cygwin64\bin\cyggcc_s-seh-1.dll (有的环境是cyggcc_s-1.dll)
注意:在第5步时会出现"storage size of ‘ctx’ isn’t known"会导致编译失败,主要是OpenSSL兼容性的问题,原因和解决方案见下链接:
解决方案
编译结果参考:附下载链接
参考
https://www.jianshu.com/p/776c86d43a2f