В настоящее время я работаю над графическим интерфейсом, разработанным с использованием Qt Creator 4.8.1 и Qt 5.11.1, скомпилированных с MinGW 32bit.Приложение будет управлять различными компонентами, такими как камера и датчики.У меня проблемы с отображением части проекта.Мы купили камеру у FLIR, которая поставляется с SDK: Spinnaker.
Что я хочу использовать для камеры, чтобы получать изображения, которые я буду обрабатывать с использованием OpenCV.Я установил OpenCV, и он работает.Проблема исходит от SDK поставщика.Чтобы использовать его, я загружаю библиотеку в файл .pro
> INCLUDEPATH += "$$PWD\lib\Spinnaker\include"
>
> win32:CONFIG(release, debug|release): LIBS +=
> -L$$PWD/'lib/Spinnaker/lib/vs2015/' -lSpinnaker_v140 else:win32:CONFIG(debug, debug|release): LIBS +=
> -L$$PWD/'lib/Spinnaker/lib/vs2015/' -lSpinnaker_v140 else:unix: LIBS += -L$$PWD/'lib/Spinnaker/lib/vs2015/' -lSpinnaker_v140
>
> INCLUDEPATH += $$PWD/'lib/Spinnaker/lib/vs2015' DEPENDPATH +=
> $$PWD/'lib/Spinnaker/lib/vs2015'
>
> win32:CONFIG(release, debug|release): LIBS +=
> -L$$PWD/'lib/Spinnaker/lib/vs2015/' -lSpinnakerGUI_WPF_v140 else:win32:CONFIG(debug, debug|release): LIBS +=
> -L$$PWD/'lib/Spinnaker/lib/vs2015/' -lSpinnakerGUI_WPF_v140 else:unix: LIBS += -L$$PWD/'lib/Spinnaker/lib/vs2015/' -lSpinnakerGUI_WPF_v140
>
> INCLUDEPATH += $$PWD/'lib/Spinnaker/lib/vs2015' DEPENDPATH +=
> $$PWD/'lib/Spinnaker/lib/vs2015'
Затем загружаю конкретные файлы .h, которые мне нужны для использования библиотеки.Вот тут все и начинают путаться: при компиляции возникает ошибка из одного из .h файлов библиотеки.Эта ошибка заключается в «Неизвестной платформе»:
#if defined (_MSC_VER)
# if defined (_WIN64)
# define PLATFORM_NAME "Win64_x64"
# else
# define PLATFORM_NAME "Win32_i86"
# endif
#elif defined (__GNUC__)
# define GENICAM_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
# if defined (__LP64__)
# if defined (__linux__)
# define PLATFORM_NAME "Linux64_x64"
# elif defined (__APPLE__)
# define PLATFORM_NAME "Maci64_x64"
# else
# error Unknown Platform
# endif
# else
# if defined (__linux__)
# define PLATFORM_NAME "Linux32_i86"
# elif defined (__APPLE__)
# define PLATFORM_NAME "Maci64_x64"
# elif defined (VXWORKS)
# define PLATFORM_NAME "VxWorks_PPC"
# else
# error Unknown Platform
# endif
# endif
#else
# error Unknown Platform
#endif
Эта ошибка возникает из-за того, что _MSC_VER не определен.Предполагается, что эта переменная будет объявлена в зависимости от версии Microsoft Visual C ++.Например, _MSC_VER = 1900 для MSVC ++ 14.0.
Я не могу передать эту ошибку, и я добавил 32-битную версию Desktop Desktop QT 5.9.6 MSVC2015 в свой проект с помощью компилятора Microsoft Visual C ++ Compiler 14.0 (amd64_x86)но когда я его использую, Qt больше не пересматривается IDE и OpenCV.
Думаю, проблема в том, что я пытаюсь использовать библиотеки, скомпилированные с двумя разными компиляторами в одном и том же проекте.Можно ли так поступить?Нужно ли перекомпилировать Spinnaker SDK, чтобы соответствовать моему проекту?Спасибо!