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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Integer包装类_entityframework面试题

    Integer包装类_entityframework面试题Integer 包装类面试

    2022年4月20日
    85
  • charles导致mac无法上网_使用不同的MAC地址上网

    charles导致mac无法上网_使用不同的MAC地址上网前言charles关闭后,发现网页突然打开了,那大概率是设置了代理,但明明已经关闭了charles,这是由于mac网络偏好设置中,使用的是手动代理,将其改为自动即可解决方法1打开网络偏好设置,

    2022年7月28日
    5
  • 游戏数值策划

    游戏数值策划游戏数值-拆解方法篇大家好,我是Alice,一名喜欢捣腾数字的游戏数值策划12345~o(* ̄▽ ̄*)ブ工作中我会经常拆解游戏数值,通过数值理解市面上优秀游戏的设计思路。今天想在这里跟大家分享一下我研究游戏数值的流程。如果各位有什么好方法,也请在评论区留言,期待看到你的想法。我平时拆解数值的流程主要分为六个阶段:准备阶段 数据收集 分析数据规律 提出猜想 根据数据验证猜想 拆解的应用不过在介绍具体流程之前,我想和你们先聊一下,数值拆解的目的。我认为数值拆解的目的大概可以分

    2022年5月5日
    47
  • SSRF漏洞之FastCGI利用篇「建议收藏」

    SSRF漏洞之FastCGI利用篇「建议收藏」SSRF漏洞之FastCGI利用篇SSRF–(Server-sideRequestForge,服务端请求伪造)定义:由攻击者构造的攻击链接传给服务端执行造成的漏洞,一般用来在外网探测或攻击内网服务SSRF漏洞思维导图如下,本篇主要介绍利用SSRF漏洞攻击FastCGI0x00.PHP-FPMFastCGI未授权利用首先我们使用Vulhub漏洞靶场快速搭建漏洞环境进行复现,感受一波漏洞的危害#保证实验vps具有git、docker、pip、docker-compose、python基

    2022年7月15日
    15
  • 业务流程引擎_业务流程管理

    业务流程引擎_业务流程管理一般的时候,我们都采用编程式开发,编程式开发的好处非常明显:直接、高效、自由,当然其缺点也是有的,与其优点刚好相对,因为直接,所以有些变化都要进行代码上的修改;因为高效,所以一旦出问题,导致的结果也比较严重,因为自由,所以带来的修改风险也比较大。  这也就是许多大的公司都在进行流程化开发的重要原因之一,比如:上海普元,Livebos,Justep,还有许许多多知名不知名的公司都有类似的流程化开发

    2022年9月25日
    3
  • 正则表达式不包含某些字符_js匹配正则表达式的方法

    正则表达式不包含某些字符_js匹配正则表达式的方法问题:去除字符串中的标签,但不包括

    Nooneshouldbealoneintheiroldage.

    ‘.replace(/<((?!br).)*?>/g,”)//结果”Nooneshouldbealoneintheiroldage.

    2022年9月19日
    4

发表回复

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

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