Я пишу программу на C ++, скомпилированную на g ++, которая взаимодействует с USB-устройством.USB-устройство управляется Arduino Mega.Как вы, возможно, знаете, существует множество ароматов клонов Arduino.Например, я экспериментирую с Elegoo, и фактическая плата, которую я буду использовать для конечного продукта, - это оригинальная Arduino Mega.У одного COM-порт 4, у другого COM-порт 5. Плюс, кто сказал, что эти COM-порты будут одинаковыми на другом компьютере?Итак, в моей программе я хочу определить, к какому COM подключена плата.Однако я получаю сообщение об ошибке "неопределенная ссылка на GUID_DEVCLASS_PORTS". Я использую следующую строку для компиляции:
g++ -o testPorts.exe testPorts.cpp -lsetupapi -mwindows
Мой код начинается следующим образом:
#include (Left Carat)windows.h>
#include (Left Carat)initguid.h>
#include (Left Carat)devguid.h>
#include (Left Carat)setupapi.h>
#include (Left Carat)stdio.h>
int main() {
SP_DEVINFO_DATA devInfoData = {};
devInfoData.cbSize = sizeof(devInfoData);
// Get port info tree:
HDEVINFO hDeviceInfo = SetupDiGetClassDevs( &GUID_DEVCLASS_PORTS,
0,
NULL,
DIGCF_PRESENT
);
У меня естьобязательные включения перечислены в справочной странице Microsoft MSDN. Я использовал команду -l для добавления требуемой библиотеки setupapi. Я использовал команду -m, чтобы сделать ее сборкой Windows GUI. Я не могу понять, почему я получаю ошибку. Может кто-нибудь предложить какой-либопредложения? Спасибо!