У меня есть проект Qt5
, который успешно скомпилирован с shared
библиотеками Qt, но я получаю много ошибок (около 130 ошибок), таких как * error: multiple definition of 'XXX'
, при компиляции его с static
библиотеками Qt:
/usr/local/Qt-5.3.0/lib/libQt5Quick.a(qquickanimation.o): In function `_q_interpolateShortestRotation(double&, double&, double)':
qquickanimation.cpp:(.text+0x330): multiple definition of `_q_interpolateShortestRotation(double&, double&, double)'
/usr/local/Qt-5.3.0/lib/libQt5Declarative.a(qdeclarativeanimation.o):qdeclarativeanimation.cpp:(.text+0xd80): first defined here
/usr/local/Qt-5.3.0/lib/libQt5Quick.a(qquickanimation.o): In function `_q_interpolateClockwiseRotation(double&, double&, double)':
qquickanimation.cpp:(.text+0x3c0): multiple definition of `_q_interpolateClockwiseRotation(double&, double&, double)'
/usr/local/Qt-5.3.0/lib/libQt5Declarative.a(qdeclarativeanimation.o):qdeclarativeanimation.cpp:(.text+0xe10): first defined here
Почти все множественные определения обнаружены парами:
- libQt5Декларативная, libQt5Quick
- libQt5Декларативная, libQt5Qml
Мне нужно libQt5Declarative
только для использования MessageDialog
в моем qml
Мой .pro
файл:
QT += quick declarative widgets network xml xmlpatterns multimedia
TARGET = MyApp
TEMPLATE = app
SOURCES += ...
HEADERS += ...
OTHER_FILES += ...
RESOURCES += ...
CONFIG += static
Мои вопросы:
- Почему он успешно компилируется с общим Qt, но терпит неудачу, когда я компилирую статический Qt?
- Возможно ли одновременное использование декларативных и быстрых модулей?
- Я скомпилировал статические библиотеки Qt самостоятельно и, возможно, я сделал это неправильно. Есть ли у Qt официальный пакет статических библиотек?
MessageDialog
принадлежатlibQ5Quick
, но неlibQt5Declarative
. Пост обновлен, но все мои вопросы остаются актуальными. - person CAMOBAP   schedule 06.07.2014