crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> [РЕШЕНО] qsqlite plugin статическая сборка
DEADHUNT
  опции профиля:
сообщение 22.8.2010, 19:22
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


добавляю линкеру qsqlite.a получаю следующее:
Раскрывающийся текст

/usr/local/Trolltech/Qt-4.6.3/plugins/sqldrivers/libqsqlite.a(smain.o): In function `QSQLiteDriverPlugin::QSQLiteDriverPlugin()':
smain.cpp:(.text+0xc6): undefined reference to `QSqlDriverPlugin::QSqlDriverPlugin(QObject*)'
/usr/local/Trolltech/Qt-4.6.3/plugins/sqldrivers/libqsqlite.a(smain.o): In function `QSQLiteDriverPlugin::QSQLiteDriverPlugin()':
smain.cpp:(.text+0x2d6): undefined reference to `QSqlDriverPlugin::QSqlDriverPlugin(QObject*)'
/usr/local/Trolltech/Qt-4.6.3/plugins/sqldrivers/libqsqlite.a(smain.o): In function `QSQLiteDriverPlugin::~QSQLiteDriverPlugin()':
smain.cpp:(.text._ZN19QSQLiteDriverPluginD1Ev[QSQLiteDriverPlugin::~QSQLiteDriverPlugin()]+0x37): undefined reference to `QSqlDriverPlugin::~QSqlDriverPlugin()'
/usr/local/Trolltech/Qt-4.6.3/plugins/sqldrivers/libqsqlite.a(smain.o): In function `QSQLiteDriverPlugin::~QSQLiteDriverPlugin()':
smain.cpp:(.text._ZN19QSQLiteDriverPluginD0Ev[QSQLiteDriverPlugin::~QSQLiteDriverPlugin()]+0x3c): undefined reference to `QSqlDriverPlugin::~QSqlDriverPlugin()'
/usr/local/Trolltech/Qt-4.6.3/plugins/sqldrivers/libqsqlite.a(smain.o):(.data.rel.ro._ZTV19QSQLiteDriverPlugin[vtable for QSQLiteDriverPlugin]+0x8): undefined reference to `QSqlDriverPlugin::metaObject() const'
/usr/local/Trolltech/Qt-4.6.3/plugins/sqldrivers/libqsqlite.a(smain.o):(.data.rel.ro._ZTV19QSQLiteDriverPlugin[vtable for QSQLiteDriverPlugin]+0xc): undefined reference to `QSqlDriverPlugin::qt_metacast(char const*)'
/usr/local/Trolltech/Qt-4.6.3/plugins/sqldrivers/libqsqlite.a(smain.o):(.data.rel.ro._ZTV19QSQLiteDriverPlugin[vtable for QSQLiteDriverPlugin]+0x10): undefined reference to `QSqlDriverPlugin::qt_metacall(QMetaObject::Call, int, void**)'
/usr/local/Trolltech/Qt-4.6.3/plugins/sqldrivers/libqsqlite.a(smain.o):(.data.rel.ro._ZTI19QSQLiteDriverPlugin[typeinfo for QSQLiteDriverPlugin]+0x8): undefined reference to `typeinfo for QSqlDriverPlugin'

никто не сталкивался с такой проблемой? может ещё что-то надо подсоединить.

Сообщение отредактировал DEADHUNT - 22.8.2010, 21:14
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 22.8.2010, 19:45
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


ты плагин собираешь?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 22.8.2010, 19:50
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


нет, стандартный qsqlite, Qt статически собрано. пытаюсь статически слинковать (в cmake), может qmake какие-то дополнительные параметры добавляет при компиляции/сборке?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 22.8.2010, 20:44
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


при использовании pro-файла нужно писать так:
В .pro-файле вашего приложения, вам необходимо добавить следующую запись:
QTPLUGIN     += qsqlite
подробности здесь

попробуй сделать с помощью qmake и посмотри, что эта переменная добавит в Makefile
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 22.8.2010, 20:46
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


Цитата(Litkevich Yuriy @ 22.8.2010, 21:44) *
при использовании pro-файла нужно писать так:

да так оно и собиралось раньше, но теперь я собираю без qmake(cmake)

что именно генерировал qmake на QTPLUGIN += qsqlite?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 22.8.2010, 20:47
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Попробуй, используя qmake, сгенерировать 2 Makefile, один с этой опцией в pro-файле, другой без.
И сравни.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 22.8.2010, 21:10
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


те же самые ошибки получаются если в *.pro не добавить QT += sql.
set (QT_USE_QTXML true)
set (QT_USE_QTSQL true)
set (QT_USE_QTWEBKIT true)

include (${QT_USE_FILE})

if (UNIX)
add_definitions(-DSTATIC_LINK)
set (QT_LIBRARIES
    ${QT_LIBRARIES}
    ${QT_PLUGINS_DIR}/sqldrivers/libqsqlite.a)
endif ()

message(${QT_LIBRARIES})
...
add_executable (${project} WIN32 ${headers} ${sources} ${moc_sources} ${qrc_sources} ${ui_headers} ../icon.rc)

target_link_libraries(${project} ${BOOST_LIBRARIES} ${QT_LIBRARIES})

выводит:
cmake CMakeLists.txt
/usr/local/Trolltech/Qt-4.6.3/lib/libQtWebKit.a/usr/local/Trolltech/Qt-4.6.3/lib/libQtGui.a/usr/lib/libpng.so/usr/lib/libSM.so/usr/lib/libICE.so/usr/lib/libXrender.so/usr/lib/libfreetype.so/usr/lib/libfontconfig.so/usr/lib/libXext.so/usr/lib/libX11.so/usr/lib/libm.so/usr/local/Trolltech/Qt-4.6.3/lib/libQtXml.a/usr/local/Trolltech/Qt-4.6.3/lib/libQtSql.a/usr/local/Trolltech/Qt-4.6.3/lib/libQtXmlPatterns.a/usr/local/Trolltech/Qt-4.6.3/lib/libQtNetwork.a/usr/local/Trolltech/Qt-4.6.3/lib/libQtCore.a/usr/lib/libz.so/usr/lib/librt.so-lpthread-ldl/usr/local/Trolltech/Qt-4.6.3/plugins/sqldrivers/libqsqlite.a
-- Configuring done

QtSql подключается, а ошибки все же есть.

для правильной сборки надо чтобы libQtSql была раньше libqsqlite тогда всё нормально компилируется.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
512es
  опции профиля:
сообщение 22.9.2010, 13:48
Сообщение #8


Участник
**

Группа: Участник
Сообщений: 135
Регистрация: 31.10.2008
Пользователь №: 407

Спасибо сказали: 5 раз(а)




Репутация:   0  


а можно поподробнее как это всё получилось?
начиная с самого начала)

у меня qt статически так и не сообралось. то на openssl ошибки валит (наверное нужны сорцы опенссл добавить) а без ssl тоже не компилится. гдето на вебките валится.
а ведь ещё и sqlite и postgres и sqlitechipher и icu хочу вкомпилить.

с icu вообще беда( не собирается на mingw вообще никак( я и под msys пробовал и под cygwin'ом с компиллером mingw и даже под gentoo cross mingw. одна и та же ошибка. даже баг им запостил. дней через 7 новая версия выходит, может там профиксят..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 20:32