尝试包含-lhid时,Mingw64链接器错误

时间:2018-03-28 13:43:51

标签: c++ windows linker mingw mingw-w64

我正在从mingw32升级到mingw64,我在链接程序时遇到问题。链接器选项-lhid似乎无法按预期工作。我正在使用带有Win8操作系统的VM。

代码段:

#include <windows.h>
#include <hidsdi.h>

int main(int argc, char * argv[])
{
  GUID guidHID;
  HidD_GetHidGuid(&guidHID);
  return 0;
}

控制台输出:

C:\Users\[...]>where g++

C:\mingw-w64-7.3.0\i686-7.3.0-posix-dwarf-rt_v5-rev0\mingw32\bin\g++.exe

C:\Users\[...]>g++ test.cc -lhid
C:\Users\[...]\AppData\Local\Temp\ccax2hjg.o:test.cc:(.text+0x1d): undefined reference to `HidD_GetHidGuid(_GUID*)@4'

collect2.exe: error: ld returned 1 exit status

C:\Users\[...]>g++ test.cc
C:\Users\[...]\AppData\Local\Temp\ccax2hjg.o:test.cc:(.text+0x1d): undefined reference to `HidD_GetHidGuid(_GUID*)@4'

如果我在旧的mingw32安装中使用g ++,这样可以正常工作。 需要注意的一点是,如果我省略旧安装的-lhid,则链接器会抱怨所述函数的impl版本。老明星的控制台输出:

C:\Users\[...]\Documents>where g++
C:\MinGW\bin\g++.exe

C:\Users\[...]\Documents>g++ test.cc

C:\Users\[...]\AppData\Local\Temp\cc0HcYlz.o:test.cc:(.text+0x1d): undefined reference to `_imp__HidD_GetHidGuid@4'
collect2: ld returned 1 exit status

C:\Users\[...]\Documents>g++ test.cc -lhid

C:\Users\[...]\Documents>

0 个答案:

没有答案