Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: jershell от Апрель 18, 2013, 09:42



Название: Не собирается QJson в проекте под windows
Отправлено: jershell от Апрель 18, 2013, 09:42
Здравствуйте. Может кто подскажет. Есть библиотеке QJson, и для того чтоб было её удобно таскать кинул содержимое ./src в каталог проекта, добавил все в проект. В своей программе просто указал путь до .h файлов. Ubuntu 12.04.2 x64, qt-4.8.4, gcc вроде 4.7 точно не помню компилируется и работает без проблем. Все очень хорошо. Но вот решил скомпилировать все под windows 7 home premium i586 gcc 4.4 qt-4.8.4 И началось:
1.Вначале жаловался на FlexLexer.h, посмотрел, он есть тут же в ./src, но вот подключается как глобальный #include <FlexLexer.h>, заменил на #include "FlexLexer.h" Заработало. Возможно под ubunutu он есть где-то в стандартом каталоге.
2.В процессе компиляции
Код:
C:\Users\333\dev\build-t1-Desktop-Debug\debug\moc_serializerrunnable.cpp:57: ошибка: definition of static data member 'QJson::SerializerRunnable::staticMetaObjectExtraData' of dllimport'd class
Сама 57 строка.
Код:
const QMetaObjectExtraData QJson::SerializerRunnable::staticMetaObjectExtraData = {
    0,  qt_static_metacall
};
Сама библиотека собирается и подключается отдельно без проблем. Как сделать чтоб все как в убунтах собиралось?


Название: Re: Не собирается QJson в проекте под windows
Отправлено: xokc от Апрель 18, 2013, 12:12
Собрать как статическую библиотеку и уже её просто прилинковывать к своему проекту.


Название: Re: Не собирается QJson в проекте под windows
Отправлено: jershell от Апрель 18, 2013, 14:31
Хм. В общем в файл проекта добавил:
Код:
windows:{
 DEFINES += QJSON_MAKEDLL
}
У людей ситуация идентичная. Все работает и все хорошо. Спасибо за внимание. Почему же все так, не знают даже и там, просто решение . Взято отсюда: http://stackoverflow.com/questions/3919221/compiling-qjson-statically-into-qt-application-multiple-declaration-errors (http://stackoverflow.com/questions/3919221/compiling-qjson-statically-into-qt-application-multiple-declaration-errors)