Sigar 编译笔记
在win7上面编译Sigar,由于开发环境及编译器版本不同,出现了许多问题。
开发环境:
win7, CMAKE 3.11.0-rc2, jdk 1.8, perl5, ant 1.10.1, vs2015
1. 编译之前要运行 %vs_root%\VC\vcvarsall.bat amd64,设置vs的编译依赖环境, 64位的windows一定要加上参数 amd64
2. vs2015需要根据https://github.com/hyperic/sigar/issues/111的建议修改源码,解决snprintf宏定义冲突问题
diff --git a/src/os/win32/sigar_os.h b/src/os/win32/sigar_os.h index 1499236..231f8ae 100755 --- a/src/os/win32/sigar_os.h +++ b/src/os/win32/sigar_os.h @@ -25,7 +25,9 @@#ifdef MSVC#define WIN32_LEAN_AND_MEAN +#if _MSC_VER < 1900#define snprintf _snprintf +#endif#if _MSC_VER <= 1200#define SIGAR_USING_MSC6 /* Visual Studio version 6 */#define HAVE_MIB_IPADDRROW_WTYPE 0
3. vs2015需要根据https://github.com/hyperic/sigar/issues/112的建议修改源码,解决wcstok函数签名不一致问题,也可以使用 _wcstok代替原来的wcstok,以调用老版函数。
--- a/bindings/java/src/jni/win32/eventlog.c 2010-04-28 17:00:00.000000000 -0400 +++ b/bindings/java/src/jni/win32/eventlog.c 2018-01-23 15:55:39.605908161 -0500 @@ -130,7 +130,8 @@}}- ptr = wcstok(msgdll, FILESEP); + LPWSTR ex; + ptr = wcstok(msgdll, FILESEP, &ex);while (ptr) {HINSTANCE hlib;@@ -150,7 +151,7 @@break;}} - ptr = wcstok(NULL, FILESEP); + ptr = wcstok(NULL, FILESEP, &ex);}if (msgbuf) {
这样在bindings/java目录下面执行
ant clean
ant
就可以编译成功。
Sigar 编译笔记相关推荐
- MRuby 编译笔记
专注于嵌入式脚本的MRuby在Windows下的编译笔记: 环境: OS: Windows 8.1, 使用 VS Express 2013 for Desktop. 材料: MRuby : 下载源码就 ...
- eos 编译笔记(注意点)
eos 编译笔记(注意点) 一.从 GitHub 上下载原代码 二.下载完源代码后,执行编译原代码 三. 执行安装 四. 设置PATH路径 五. 启动nodeos节点 六. 通过config.ini文 ...
- LFS7.4编译笔记(3)
在第一部分,我们编译了一个工具链及临时系统,然后在第二部分我们chroot到/mnt/lfs下面,利用临时系统的工具编译了我们最终的LFS系统.不过此时,我们的LFS系统还是不完整的,因为我们还没有安 ...
- 小白openwrt编译笔记——固件编译
基于lean源码编译 lean源码 其它源码 Lienol源码 同样github上的源码也在国外,没有好梯子下载也是很费劲,我们可以用码云克隆一下,实现国内下载源码 Gitee(码云) 霍泰稳 极客邦 ...
- android开关机动画和铃声配置 MTK编译笔记
1, MTK平台开关机动画配置, 将需要调整的开关机动画和铃声放到alps\frameworks\base\data\sounds 这个目录下面,打开 该目录下的Android.mk文件,增加下面的编 ...
- linux 内核编译笔记 (jettison, snowflock)
过去的三个月一直在接触和 linux kernel 相关的工作,具体是要在一台新服务器上跑一个基于xen上修改的系统.期间遇到了很多问题,我也没想到用了三个多月我也没有完全解决这些问题.这中间我一直都 ...
- win10系统 ubuntu子系统 进行ndk编译笔记
报错1:error adding symbols: file in wrong format collect2: error: ld returned 1 exit status win10系统 ub ...
- busybox编译笔记
1.下载busybox-1.20.1.tar.bz 2.解压:tar jxvf busybox-1.20.1.tar.bz 3.配置: (1)进入解压后的文件busybox-1.20.1:cd ...
- MONO源码编译笔记-版本:unity-2018.4-mbe
编译了一个星期,终于成功.官方的编译文件有问题,具体在后面写了. 一,编译不成功,看了下面一些网址 https://www.veryarm.com/117013.html https://hacpai ...
- Android编译笔记之五
在官网上看到的编译kernel时的两条命令 make ARCH=arm rockchip_defconfig make ARCH=arm rk3288-firefly-rk808.img 第一条命令等 ...
最新文章
- word2016提示mathtype文件未找到:MathPage.wll
- java ftp connect_java实现ftp的几种方式(第3方包)
- c语言程序课程设计问题,矩形问题-C语言程序课程设课程设计(论文).doc
- c 语言中下标运算符,详解C++中二进制求补运算符与下标运算符的用法
- hdu 1421 动态规划
- WinCE中的RAM-Based Registry与HIVE-Based Registry
- TortoiseGIT创建及合并分支
- Spring Security OAuth2.0_总结_Spring Security OAuth2.0认证授权---springcloud工作笔记157
- Python 学习笔记 - 协程
- 总结的一些android公共库
- Beginning WF 4.0翻译——第一章(创建一个简单的工作流)续二
- ASP.NET MVC 随想录——探索ASP.NET Identity 身份验证和基于角色的授权,中级篇
- 如何将Win7、Win10笔记本,台式机系统C盘软件搬家? 只需3个步骤!!!
- javah生成java头文件
- 小米真蓝牙耳机说明书_小米蓝牙耳机使用说明,开箱评测小米蓝牙耳机
- SSRF漏洞原理及检测
- no-sql数据库之redis
- java 为什么要get,set方法
- 一维数组cvs文件,求数据平均值
- 二叉树的度为2的节点和叶子节点的关系