当前位置:   article > 正文

QT CMakelists添加第三方类库

QT CMakelists添加第三方类库
  1. //此函数用来判断网口是否连接正常,需要首先在cpp当中添加头文件
  2. #include <sensapi.h>
  3. ...
  4. BYTE checkNetworks()
  5. {
  6. DWORD dwCode;
  7. if(!IsNetworkAlive(&dwCode))
  8. return 0;
  9. return 1;
  10. }
  11. //此函数用来检查特定的USB句柄设备是否完好,也是首先需要添加头文件
  12. #include <winioctl.h>
  13. #include <setupapi.h>
  14. #include <initguid.h>
  15. ...
  16. DEFINE_GUID(GUID_DEVINTERFACE_USB_DEVICE,
  17. 0xA5DCBF10L, 0x6530, 0x11D2, 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED);
  18. #define GUID_CLASS_USB_DEVICE GUID_DEVINTERFACE_USB_DEVICE
  19. BOOL GetMyUsbDeviceLabel(const char *sHandle)//输入设备句柄ID字符串,判断是否正常
  20. {
  21. LPGUID lpGuid = (LPGUID)&GUID_CLASS_USB_DEVICE;
  22. int INTERFACE_DETAIL_SIZE = 1024;
  23. int nCount = 0;
  24. HDEVINFO info = SetupDiGetClassDevsA(lpGuid, NULL, NULL, DIGCF_PRESENT|DIGCF_INTERFACEDEVICE);
  25. //enumerate device information
  26. DWORD required_size = 0;
  27. int i;
  28. SP_DEVINFO_DATA DeviceInfoData = { sizeof(DeviceInfoData) };
  29. unsigned long DataT;
  30. BOOL flag = FALSE;
  31. //DWORD buffersize = 1024;
  32. unsigned long req_bufsize = 0;
  33. for (i=0;SetupDiEnumDeviceInfo(info,i,&DeviceInfoData);i++)
  34. {
  35. char locid[1024];
  36. if (!SetupDiGetDeviceRegistryPropertyA(info, &DeviceInfoData, SPDRP_HARDWAREID, &DataT, (LPBYTE)locid, 1024, &req_bufsize))
  37. continue;
  38. if(strstr(locid,sHandle) != NULL)
  39. {
  40. flag = TRUE;
  41. break;
  42. }
  43. }
  44. SetupDiDestroyDeviceInfoList(info);
  45. return flag;
  46. }

以上用两个windows下面的QT creator引用第三方类库,举例说明问题。

如果只是添加的引用头文件以后,是不行的,这样写QT Creator编译是无法通过的,提示找不到对应的函数体实现。如:

undefined reference to '_imp_SetupDiGetClassDevs'....类似这种带有_imp前缀的错误提示之类的。

需要打开项目的CMakeLists.txt

手动添加关于第三方类库的两行代码:

  1. target_link_libraries(myProjectname PRIVATE Sensapi)
  2. target_link_libraries(myProjectname PRIVATE Setupapi)

再次编译,不再出现错误

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/658821
推荐阅读
相关标签
  

闽ICP备14008679号