对IID_ImageList的未定义引用

时间:2015-06-26 15:07:22

标签: windows qt winapi mingw

我使用Qt 5.4& MinGW的。 我读到应该链接uuid库以避免此错误。在我的.pro文件中,我添加了

LIBS += libuuid libole32 liboleaut32

然而,即使我有这条线,我也会得到未定义的引用错误

D:\Dev\HinstStart\FileListData.cpp:74: ошибка: undefined reference to `IID_IImageList'

P.S:如果我添加一些不存在的lib,如

LIBS += libuuid libole32 liboleaut32 liblol

然后我得到"找不到-llol"错误。这就是我知道我的LIBS语句没有被忽略的方式

1 个答案:

答案 0 :(得分:0)

使用MinGW-w64时,解决方案是先包含标头#include <initguid.h>,然后再包含包含COM标识符(例如commoncontrols.hmmdeviceapi.hendpointvolume.h)的标头。

#include <initguid.h>
#include <commoncontrols.h>
#include <mmdeviceapi.h>
#include <endpointvolume.h>

该解决方案位于Undefined reference to CLSID_MMDeviceEnumerator and IID_IMMDeviceEnumerator