Sigar 编译笔记「建议收藏」

Sigar 编译笔记「建议收藏」在win7上面编译Sigar,由于开发环境及编译器版本不同,出现了许多问题。开发环境:win7,CMAKE3.11.0-rc2,jdk1.8,perl5,ant1.10.1,vs20151.编译之前要运行%vs_root%\VC\vcvarsall.batamd64,设置vs的编译依赖环境,64位的windows一定要加上参数amd642.vs2015需要根据https…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

在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

Jetbrains全家桶1年46,售后保障稳定

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 

就可以编译成功。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206850.html原文链接:https://javaforall.net

(0)
上一篇 2025年8月3日 上午11:22
下一篇 2025年8月3日 下午12:01


相关推荐

  • nessus8.15_nessus使用教程

    nessus8.15_nessus使用教程1、 打开浏览器输入IP加端口8834登录Nessus2、 输入账号密码,均为admin3、 登录成功后,进入到首页4、 点击侧边栏policies,显示策略界面5、 点击newpolicy,显示策略模板6、 选择advancedscan,填写策略名称7、 点击permission,选择canuse,设置所有人可用8、 单击Plugins标签,该界面显示了所有插件程…

    2022年10月19日
    2
  • css鼠标变小手

    css鼠标变小手css 鼠标变小手

    2026年3月19日
    3
  • Spring AOP 实现监控方法执行的时间(统计service中方法执行的时间)

    项目中有时候会遇到统计方法执行的时间,来对项目进行优化!下面是我自己在工作中遇到的问题,和我自己的解决方法。要统计出项目中方法执行时间大于1秒的那些方法!我们的项目开发使用的是SpringMVC 那么首先想到使用 Aop Aspet 切面统计,那样子更加方便也高效。1:打开切面!因为项目使用的SpringMVC,项目中的配置文件就配置的 &lt;aop:aspectj-autoproxy …

    2022年2月24日
    51
  • WDM 驱动程序开发[通俗易懂]

    WDM 驱动程序开发[通俗易懂]1.概述 引入了全新的WDM(Win32DriverModel)的驱动程序架构,说是新技术,其实早在1997年Microsoft就提出了该项技术并在Windows98中得到了充分的应用,换句话说,Windows98也支持WDM。这样WDM就成为了一个跨平台的驱动程序模型不仅如此WDM驱动程序还可以在不修改源代码的情况下经过重新编译后在非Intel平台上运行。2.WDM设备驱动程序的特

    2022年10月21日
    4
  • java 学生信息管理系统

    java 学生信息管理系统只设计了一部分全部的太多了。会慢慢更新增加。学生信息管理包括添加,删除,修改,查询,显示全部等具体结构如图在SQLServer2005数据库上实现数据操作。使用纯面向对象的java语言作为开发语言在sqlserver2005新建一个名为Student的数据库,在下面新建一个名为stu的表当然列名你可以随便写当然要有个学号啊。我的修改等等都是根据学号的

    2022年7月13日
    16
  • Python爬虫入门项目

    Python是什么Python是著名的“龟叔”GuidovanRossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。创始人GuidovanRossum是BBC出品英剧MontyPython’sFlyingCircus(中文:蒙提·派森的飞行马戏团)的狂热粉丝,因而将自己创造的这门编程语言命名为Python。人生苦短,我用python,翻译自”L…

    2022年4月9日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号