“_snprintf”未在此范围内声明
‘_snprintf’ was not declared in this scope
我正在做一个ffmepg c++项目,该项目在hpp文件中链接了一个hpp文件:
#define snprintf _snprintf
#include <stdio.h>
#include <cstdio>
#include <unistd.h>
include <assert.h>
#if defined _MSC_VER && _MSC_VER >= 1200
#pragma warning( disable: 4244 4510 4512 4610 4146 4996 4005)
#define sprintf sprintf_s
#define _sprintf _sprintf_s
#define _snprintf _snprintf_s
#endif
snprintf (oc->filename, sizeof(oc->filename), "%s", filename);
它给出错误:
‘_snprintf’ was not declared in this scope
错误显示"_snprintf">而我使用的是"snprint">,这很奇怪。这段代码是别人写的,我看不懂他用的这些 #define。如果我删除 sprintf sprintf_s #define 行,它会给出错误:
segmentation fault(core dumped)
由于 ffmpeg 与 C++ 不兼容,我将 stdio.h 和 cstdio 都包含在外部 C 和外部 C 中,但错误继续显示出来。问题出在哪里?如何解决?
首先更改此行
include <assert.h>
跟:
#include <assert.h>
并写下这一行
#define snprintf _snprintf
包含并尝试编译代码后
相关文章:
- 错误:未在此范围内声明'reverse'
- 错误:"imread"未在此范围内声明
- 未在此范围内声明错误 'xy'
- Socklen_t未在此范围内声明
- 错误:'[' 之前预期的非限定 id 和错误:'users'未在此范围内声明
- "Main"已在当前范围内声明
- c++ 变量在宏的扩展中没有在这个范围内声明
- C++ 在编译过程中 strtok 函数 Eclipse 说没有在范围内声明?
- 'num1'未在此范围内声明
- 如何找到在本地范围内声明的变量的地址?
- NT状态未在此范围内声明
- 变量未在此范围内声明 数组线性搜索
- 包含文件中的 Typdef "未在此范围内声明"
- 'ClassName'和'ClassInstance'未在此范围内声明
- C++ 中的类之间的数据重新循环 - 错误:'<class name>'未在此范围内声明
- 代码作为 C 文件工作,但不作为C++文件,错误:'__builtin_types_compatible_p'未在此范围内声明
- 如何修复错误:"vreinterpretq_u32_f64"未在此范围内声明 - 在Android上使用Eigen构建
- 如何修复C++中的"arrStud未在此范围内声明"错误
- 错误:"SHGetKnownFolderPath"未在此范围内声明
- 错误:'Sprite'未在此范围内声明