最近在试用smartmontools,感觉还行,于是乎想找来源码改改试试,这下可好,掉坑里了。呜呜呜。。。

smartmontools的源码在这里可以看到:https://www.smartmontools.org/browser,svn下载地址http://svn.code.sf.net/p/smartmontools/code/。因为工作环境必须使用Windows(改天试试Linux),smartmontools必须使用MingW gcc at MSYS, 于是想把MingW的环境安装一下。

两个安装参考文档,不知道哪个更合适、简单:1. http://www.cccp-project.net/wiki/index.php?title=Installing_MSYS-MinGW 2. http://www.mingw.org/wiki/MSYS

唉,摸着石头过河吧。

1. 安装MSYS失败

C:\msys\1.0\postinstall>PATH ..\bin;C:\MinGW\bin;C:\Program Files\SlickEdit Pro
20.0.1\win\;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C
:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program F
iles\TortoiseSVN\bin;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Pr
ogram Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL
Server\120\Tools\Binn\;C:\Program Files (x86)\Skype\Phone\;C:\Program Files\fio\
;C:\Program Files\Git\cmd;C:\ProgramData\chocolatey\bin;C:\Program Files\Git\usr
\bin;C:\Program Files\smartmontools\bin

C:\msys\1.0\postinstall>..\bin\sh.exe pi.sh
0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
AllocationBase 0x71110000, BaseAddress 0x71110000, RegionSize 0x3000, State 0x1000
C:\msys\1.0\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0

C:\msys\1.0\postinstall>pause
请按任意键继续. . .

WHY.........?

查询方案。。

http://www.myexception.cn/mobile/631529.html

http://download.csdn.net/detail/bihaichentian/2634858

貌似这个有用?http://blog.csdn.net/yangyangyang20092010/article/details/46350519

把之前安装的MinGW,MSYS删除,重新安装试试。还是不行。

好吧,换个Windows环境,我到虚拟机下试试。这次直接按这个步骤来http://blog.csdn.net/yangyangyang20092010/article/details/46350519 。

下载MinGW和MSYS,安装到c:/MinGW/mingw-64下面,msys整个文件夹也拷贝到这里。另外,需要安装一下autoconf, automake, perl。

好了,下面可以试试编译了。

2. 打开c:/MinGW/mingw-**/msys/msys.bat, 进入到smartmontools文件夹目录,

先运行autogen.sh

然后(参考smartmontools源码里面的 INSTALL 文件)

 mkdir vctmp && cd vctmp
../configure [... any MinGW option set from above ...]
make config-vc10

Configure 结束得到:

然后 make config-vc10:

好了,现在Windows需要的三个文件创建好了(config.h,smart*.rc,svnversion.h ),进入os_win32文件夹,用visual studio打开solution文件(*.sln)。分别编译工程,或者编译整个solution。

到此,环境搭建问题解决了。

关于如何调试,改天试试再来写。目前来讲,代码可以编辑编译和运行了,来个fake图:

3. 调试

main函数带参数在Visual Studio下的调试方法  http://blog.csdn.net/qq1987924/article/details/22781331

正所谓

路漫漫其修远兮,吾将上下而爬坑。

开源是个巨大的坑,谁来帮帮我 - smartmontools 虐我记的更多相关文章

  1. 在Web API中使用Swagger-UI开源组件(一个深坑的解决)

    介绍: Swagger-Ui是一个非常棒的Web API说明帮助页,具体详情可自行Google和百度. 官网:http://swagger.io/    GitHub地址:https://github ...

  2. WebView中JS调用Android Method 遇到的坑整理

    WebView是android中常用的一个组件,其作用是展示网页,并让网页和android app进行一些业务逻辑上的交互. 其坑无数,相信用过的都知道,一个一个来解决吧. 1.怎么互调: <! ...

  3. Rust入坑指南:万物初始

    有没有同学记得我们一起挖了多少个坑?嗯-其实我自己也不记得了,今天我们再来挖一个特殊的坑,这个坑可以说是挖到根源了--元编程. 元编程是编程领域的一个重要概念,它允许程序将代码作为数据,在运行时对代码 ...

  4. 客户端GUI程序开发漫谈

    这篇文章包含了这个领域的很多开源项目的介绍,还有我多年来的心血和汗水  去年夏天的时候,我用QT做了一个小工具 后来还用QT做了流程设计器 我把程序分享给飞扬青云之后,他甚至搞出来一套QT的皮肤来 说 ...

  5. iOS视频直播

    视频直播技术点 视频直播,可以分为 采集,前处理,编码,传输, 服务器处理,解码,渲染 采集: iOS系统因为软硬件种类不多, 硬件适配性比较好, 所以比较简单. 而Android端市面上机型众多, ...

  6. 记一次CPU占用率和load高的排查

    前不久公司进行了一次大促,晚上值班.大促是从晚上8点多开始的,一开始流量慢慢的进来,观察了应用的各项指标,一切都是正常的,因为这是双11过后的第一次大促,想着用户的购买欲应该不会太强,所以我们的运维同 ...

  7. 做一个APP

    前言 有点零乱,但是我想写下来慢慢整理,搭建一个好点的工程-模式MVC, 会包括一些第三方库,动画库,第三方库管理关联,自定义常用控件的管理和关联 1.预编译文件的创建 在build setting ...

  8. 运维工程师打怪升级进阶之路 V2.0

    在此之前,发布过两个版本: 运维工程师打怪升级之路 V1.0 版本发布 运维工程师打怪升级必经之路 V1.0.1 很多读者伙伴们反应总结的很系统.很全面,无论是0基础初学者,还是有基础的入门者,或者是 ...

  9. 2019-1-17-一段能让-VisualStudio-炸掉的代码

    title author date CreateTime categories 一段能让 VisualStudio 炸掉的代码 lindexi 2019-01-17 09:55:29 +0800 20 ...

随机推荐

  1. linux下的打包与解包的简单总结

    .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ---------------------- ...

  2. Java CountDownLatch应用

    Java的concurrent包里面的CountDownLatch其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是同时只能有一个线程去减这个计数 ...

  3. 并查集问题hdu 1232

    Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道 ...

  4. vscode IIsExpress用法

    最近前端调试项目,都要安装IIS,使用IIS Express插件不需要另外在IIS架设站点,方便使用 1.安装IIS Express插件 2.ctrl+shfit+p 启动IIS Express 命令 ...

  5. 免root xshell连接termux

    免root实现xshell连接termux termux为安卓手机上的一款模拟linux终端的应用,由于手机上打字比较麻烦,所以想到了用电脑上的xshell通过ssh连接termux,以实现电脑控制t ...

  6. rem em min-width: 30em 的意思

    30em=30rem=30x16px=480px @media only screen and (min-width:30 em){ }

  7. 多线程之NSOperation简介

    在iOS开发中,为了提升用户体验,我们通常会将操作耗时的操作放在主线程之外的线程进行处理.对于正常的简单操作,我们更多的是选择代码更少的GCD,让我们专注于自己的业务逻辑开发.NSOperation在 ...

  8. Java并发 行级锁/字段锁/表级锁 乐观锁/悲观锁 共享锁/排他锁 死锁

    原文地址:https://my.oschina.net/oosc/blog/1620279 前言 锁是防止在两个事务操作同一个数据源(表或行)时交互破坏数据的一种机制. 数据库采用封锁技术保证并发操作 ...

  9. centos iptables 数据转发

    iptables -t nat -I PREROUTING -p tcp --dport 3389 -j DNAT --to 38.X25.X.X02 iptables -t nat -I POSTR ...

  10. mysql案例分析

    工作中,需要设计一个数据库存储,项目的需求大致如下: (1)对于每个用户,需要存储一个或多个库, 每个库, 由一个用户标识来标识,这里成为clientFlag. (2) 对于每一个库,结构如下: 1) ...