c++生成错误
c++ build error
我正在尝试将wwise集成到一个测试项目中。我在Windows7上有一个使用msvisualstudio2010的项目,这是我在尝试向该项目添加必要的cpp后遇到的错误。我在家里的机器上没有同样的设置,这意味着什么?
------ Build started: Project: wwise test, Configuration: Debug Win32 ------
AkFilePackageLUT.cpp
c:program files (x86)audiokineticwwise v2012.2.1 build 4427sdksamplessoundenginecommonakfilepackagelut.h(204): error C2065: 'NULL' : undeclared identifier
c:program files (x86)audiokineticwwise v2012.2.1 build 4427sdksamplessoundenginecommonakfilepackagelut.cpp(117) : see reference to function template instantiation 'const CAkFilePackageLUT::AkFileEntry<T_FILEID> *CAkFilePackageLUT::LookupFile<AkFileID>(T_FILEID,const CAkFilePackageLUT::FileLUT<T_FILEID> *,bool)' being compiled
with
[
T_FILEID=AkFileID
]
c:program files (x86)audiokineticwwise v2012.2.1 build 4427sdksamplessoundenginecommonakfilepackagelut.h(204): error C2065: 'NULL' : undeclared identifier
c:program files (x86)audiokineticwwise v2012.2.1 build 4427sdksamplessoundenginecommonakfilepackagelut.cpp(140) : see reference to function template instantiation 'const CAkFilePackageLUT::AkFileEntry<T_FILEID> *CAkFilePackageLUT::LookupFile<AkUInt64>(T_FILEID,const CAkFilePackageLUT::FileLUT<T_FILEID> *,bool)' being compiled
with
[
T_FILEID=AkUInt64
]
对我来说,第一眼看上去就像没有指定模板参数。
其他可能的原因:
-
您使用调试版本的C运行库进行编译,声明for循环中的标准C++库迭代器变量,然后尝试在for的作用域之外使用该迭代器变量环使用的调试版本编译标准C++库代码C运行时意味着/Zc:forScope。请参阅的调试迭代器支持更多信息。
-
您可能正在调用SDK头文件中的函数当前在您的生成环境中不受支持。
-
省略必要的包含文件,尤其是在定义VC_EXTRALEAN、WIN32_EAN_AND_MEAN或WIN32_EXTRA_LEAN。这些符号将windows.h和afxvw32.h中的某些头文件排除到快速编译。(在windows.h和afxv_w32.h中查找最新排除内容的描述。)
-
标识符名称拼写错误。
-
标识符使用了错误的大小写字母。
-
字符串常量后缺少右引号。
-
命名空间范围不正确。解析ANSI C++标准库的步骤函数和运算符,例如,必须指定std带有using指令的命名空间。以下示例未能编译,因为using指令被注释掉,而cout在std命名空间中定义
此错误消息显示以下内容:
在CCD_ 1中存在函数模板的定义。事实上,它是一个类的模板化方法。在该定义内的第204行,使用名称NULL
。NULL
定义在C标准库的头<cstddef>
中,通常您可以通过包含许多C/C++头中的一个来包含该定义,因为它们中的大多数都以某种方式包含<cstddef>
。但是,akfilepackagelut.h
似乎只包含在VS2012安装中使用的头,而不包含该定义,因此编译器不知道NULL的含义。
错误消息的其余部分只是模板错误的胡言乱语,告诉你我们谈论的函数模板已经在AkFilePackageLUT.cpp
中的某个地方实例化了两次,告诉你确切的位置和模板参数等等
你能做什么?好吧,如果你不能按照你说的修改源代码(为什么?你有源代码),你就什么都不能做,只能为项目提交一个bug。如果可以修改,最好在akfilepackagelut.h
中使用#include <cstddef>
。
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 错误:未在此范围内声明'reverse'