问题描述
使用vs 2013编译ncnn 20240410时出现“darknet2ncnn.cpp(130): error C3861: “snprintf”: 找不到标识符”,
D:\ncnn-20240410\tools\darknet\darknet2ncnn.cpp(130): error C3861: “snprintf”: 找不到标识符 [D:\ncnn-20240410\build_vs2013_x
86\tools\darknet\darknet2ncnn.vcxproj]
解决方法
打开darknet2ncnn.cpp脚本,定位到130行,将代码中的snprintf替换为_snprintf,
// 修改前
std::string format(const char* fmt, Args... args)
{
size_t size = snprintf(nullptr, 0, fmt, args...);
std::string buf;
buf.reserve(size + 1);
buf.resize(size);
snprintf(&buf[0], size + 1, fmt, args...);
return buf;
}
// 修改后
std::string format(const char* fmt, Args... args)
{
size_t size = _snprintf(nullptr, 0, fmt, args...);
std::string buf;
buf.reserve(size + 1);
buf.resize(size);
_snprintf(&buf[0], size + 1, fmt, args...);
return buf;
}