解决使用ptlib库导致的编译错误qlist.h(98): warning C4003: 类函数宏的调用“realloc”参数不足的问题。
编译错误
1 | D:\Qt\Qt5.12.1\5.12.1\msvc2017\include\QtCore/qlist.h(98): warning C4003: 类函数宏的调用“realloc”参数不足 |
问题分析
- 由于使用了ptlib库编译,编译错误又提示类函数宏的调用“realloc”参数不足的问题,就查找了一下ptlib关于realloc的接口;
- 找到ptlib下的
object.h
头文件包含以下宏定义;1
2
3
4
5
6
7/** Override of system call for memory check system.
This macro is used to allocate memory via the memory check system selected
with the <code>PMEMORY_CHECK</code> compile time option. It will include the source file
and line into the memory allocation to allow the PMemoryHeap class to keep
track of the memory block.
*/
解决问题
- 在引用ptlib的头文件下使用使用
undef
宏定义解开realloc
即可解决。1
关于编译器C2838与C3254的错误代码
C3254
为”explicit override”类包含显式重写”override”,但并不从包含函数声明的接口派生;C2838
为类、结构或联合使用完全限定名重新声明另一个类、结构或联合的成员。