找不到AllocationOptions错误
-
今天在用Qt时遇到这样一个问题
D:\Qt\Qt5.6.0\5.6\mingw49_32\include\QtCore\qarraydata.h:84: 错误: 'AllocationOptions' has not been declared Q_DECLARE_FLAGS(AllocationOptions, AllocationOption); ^
qbytearray部分源码如下
enum AllocationOption { CapacityReserved = 0x1, #if QT_SUPPORTS(UNSHARABLE_CONTAINERS) Unsharable = 0x2, #endif RawData = 0x4, Grow = 0x8, Default = 0 }; Q_DECLARE_FLAGS(AllocationOptions, AllocationOption); size_t detachCapacity(size_t newSize) const { if (capacityReserved && newSize < alloc) return alloc; return newSize; } AllocationOptions detachFlags() const { AllocationOptions result; if (capacityReserved) result |= CapacityReserved; return result; } AllocationOptions cloneFlags() const { AllocationOptions result; if (capacityReserved) result |= CapacityReserved; return result; } static QArrayData *allocate(size_t objectSize, size_t alignment, size_t capacity, AllocationOptions options = Default) Q_DECL_NOTHROW Q_REQUIRED_RESULT; static void deallocate(QArrayData *data, size_t objectSize, size_t alignment) Q_DECL_NOTHROW; static const QArrayData shared_null[2]; static QArrayData *sharedNull() Q_DECL_NOTHROW { return const_cast<QArrayData*>(shared_null); } };
我并没有找到AllocationOptions,只有AllocationOption(不带s),如果我把s去掉,又会有新的错误
请问各位大神
这是怎么回事
-
@大黄老鼠 是不是混用了Qt的版本呢?如果Qt的版本不同,那么编译会出现错误。尝试一下Qt 5.6.1-1版本试试看?
-
@jiangcaiyang 我目前用的是Qt5.6.0
那个错误是我在编译qtxlsx出现的
-
@大黄老鼠 问问原来的作者,是不是关闭了一些预定义的宏将QByteArray的一些属性打开/关闭了?我使用QByteArray很久了,没有出现问题。
-
@jiangcaiyang 问题可能是我误操作之类的,修改了一些东西
现在跑什么都报D:\Qt\Qt5.6.0\5.6\mingw49_32\include\QtCore\qarraydata.h:84: 错误: 'AllocationOptions' has not been declared Q_DECLARE_FLAGS(AllocationOptions, AllocationOption); ^
吓死我了
-
@大黄老鼠 在 找不到AllocationOptions错误 中说:
AllocationOptions
AllocationOptions
和AllocationOption
其实就是QFlag<AllocationOption>
和AllocationOption
的关系,估计是你不小心修改了头文件了。重新安装吧。。。
-
@qyvlik 重装了5.7
又可以了哟
-
@大黄老鼠 果然吧,还是要重新安装才行呢。
走马观花
最近的回复
召唤伊斯特瓦尔