Приветствия все,Проблема с библиотекой C++ MinGW (только для Windows, работает в Linux)?
Я использую MinGW, QT и CMake для моего проекта.
Как показано на рисунке, мой проект состоит из двух модулей.
libRinzoCore.DLL - совместно используемую библиотеку, которые определяют некоторые абстрактные классы и интерфейсы, и некоторые основные функциональные возможности модуля application.This используется для реализации динамических плагинов (которые также совместно используемые библиотеки, которые автоматически загружаются приложением) ,
Rinzo.exe - основное приложение. Использует классы libRinzoCore.
«libRinzoCore» в основном разработан с использованием объектов QT и ссылки на библиотеку QT.
«Rinzo.exe» также использует объекты библиотеки QT, некоторые из них не используются в «libRinzoCore». Поэтому мне нужно связать библиотеку QT и «libRinzoCore» с этим исполняемым файлом.
я могу скомпилировать «libRinzoCore» без проблем и два файла «libRinzoCore.DLL» и «libRinzoCore.DLL.a»
Но во время компиляции «Rinzo.exe» это дает следующий результат:
Linking CXX executable Rinzo.exe
Info: resolving IRzPlugin::staticMetaObject by linking to __imp___ZN9IRzPlugin16staticMetaObjectE (auto-import)
Info: resolving IRzViewerPlugin::staticMetaObject by linking to __imp___ZN15IRzViewerPlugin16staticMetaObjectE (auto-import)
Info: resolving IRzLayeringPlugin::staticMetaObject by linking to __imp___ZN17IRzLayeringPlugin16staticMetaObjectE (auto-import)
C:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line.
This should work unless it involves constant data structures referencing symbols
from auto-imported DLLs.
[100%] Built target Rinzo
И при выполнении «Rinzo.exe» он выходит из строя с сообщением (это перевод с японского сообщение об ошибке)
"Приложение не может performe правильно (0xc0000005). Нажмите [OK], чтобы отменить "
Вот мои файлы CMake для
libRinzoCore:
http://www.keepandshare.com/doc/2199086/rinzocore-txt-august-31-2010-12-10-pm-2k?da=y
Rinzo.exe:
http://www.keepandshare.com/doc/2199085/rinzo-txt-august-31-2010-12-10-pm-5k?da=y
Он работает отлично, если я компилирую libRinzoCore как статическая библиотека. И отлично работает в Linux.
Любые советы?
Большого спасибо Kamil.You спасло мой день !!!! –
Qt предоставляет также набор макросов, который упрощает этот шаг. Вы можете найти рекомендации в главе [Создание общих библиотек] (http://doc.qt.io/qt-5/sharedlibrary.html) документации Qt. – SGaist