vs2013编译caffe的io.cpp文件错误,open和close无法识别,
解决方法:
将下列代码放在io.cpp的前面
#ifdef _MSC_VER
#define open _open
#endif
在有close(fd)的地方改为
#ifdef _MSC_VER
close(fd);
#else
_close(fd);
#endif
最重要的是_open(),_close()是io.h中的函数,所以,要在最前面加上#include ”io.h“,问题解决
哦,忘了,还是出现了下述问题:
error C4996: 'close': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name:
解决办法:
这个问题在VS 2012之前的版本中是不会当做错误的,只是提出一个警告。为了避免报错,可以使用以下两个宏定义来屏蔽掉这种错误。
在io.cpp文件的属性->c/c++->预处理器->预处理器定义中添加:
_CRT_SECURE_NO_DEPRECATE
_CRT_NONSTDC_NO_DEPRECATE