我使用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语句没有被忽略的方式
答案 0 :(得分:0)
使用MinGW-w64时,解决方案是先包含标头#include <initguid.h>
,然后再包含包含COM标识符(例如commoncontrols.h
,mmdeviceapi.h
,endpointvolume.h
)的标头。
#include <initguid.h>
#include <commoncontrols.h>
#include <mmdeviceapi.h>
#include <endpointvolume.h>
该解决方案位于Undefined reference to CLSID_MMDeviceEnumerator and IID_IMMDeviceEnumerator