mingw中编译库出现sys/times.h: No such file or directory的可行解决方法

在mingw中成功编译好了boost库后, 使用别人写的机器学习库BMRM(https://github.com/funkey/bmrm) 编译模型时出现了fatal error: sys/times.h:No such file or directory的错误, 一看,就是sys/times.h这个文件没有...


去mingw的include目录下查看,果然没有times.h这个头文件,只有一个time.h的头文件。 后来在网上查询相关错误, 知道了mingw中本身就没有times.h这个文件, 只有cygwin中有times.h文件。


于是参考WEI_Kun仁兄的方法: http://worldant.blog.sohu.com/83875458.html, 添加times.h到mingw中,并做出一定的配置修改, 具体方法如下: 


times.h的实现在libc.a中, 在cygwin的安装包cygwin-1.5.25-5.tar中找到了libc.a文件放在了mingw的lib文件夹中,并将sys/times.h头文件和其他需要的文件如sys/config.h拷贝到mingw安装文件夹中,需要libc.a , sys/times.h 和 sys/config.h三个文件, 

另外, 还要进行一下修改,因为mingw在include文件夹中有time.h文件定义了clock_t,所以要将拷贝过来的times.h文件要进行以下修改:

将times.h中下述字样中的宏定义

#include <_ansi.h>
#include

#ifndef __clock_t_defined
typedef _CLOCK_T_ clock_t;
#define __clock_t_defined
#endif

改为:

#ifndef _CLOCK_T_DEFINED
typedef _CLOCK_T_ clock_t;
#define _CLOCK_T_DEFINED
#endif

成功。

编译可以通过了,可以生成BMRM的训练和预测的二进制文件。 


另外,为了保证程序的稳定性, 最好还是使用cygwin代替mingw. 



你可能感兴趣的:(软件安装)