Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt] Сборка драйвера Mysql, Не собирается драйвер. 
V
    Опции темы
Дшпыук
  Дата 4.7.2011, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Не сплю
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 4.3.2010
Где: Омск

Репутация: нет
Всего: 1



Не получается собрать драйвер MySQL под Qt.
выполняю

Код

qmake -o Makefile "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MySQL\lib\opt\libmysql.lib" mysql.pro
mingw32-make


и он сыпет ошибками:
Код

g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT
-DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_NO_DEBUG -DQT_PLUGIN
 -DQT_SQL_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAV
E_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"c:\QtSDK\QtSources\4.7.3\include\
QtCore" -I"c:\QtSDK\QtSources\4.7.3\include\QtSql" -I"c:\QtSDK\QtSources\4.7.3\i
nclude" -I"c:\MySQL\include" -I"c:\QtSDK\QtSources\4.7.3\include\ActiveQt" -I"tm
p\moc\release_shared" -I"..\..\..\..\mkspecs\win32-g++" -o tmp\obj\release_share
d\main.o main.cpp
main.cpp:42:28: error: qsqldriverplugin: No such file or directory
main.cpp:43:23: error: qstringlist: No such file or directory
In file included from main.cpp:44:
../../../sql/drivers/mysql/qsql_mysql.h:45:30: error: QtSql/qsqldriver.h: No suc
h file or directory
../../../sql/drivers/mysql/qsql_mysql.h:46:30: error: QtSql/qsqlresult.h: No suc
h file or directory
In file included from c:\MySQL\include/mysql.h:73,
                 from ../../../sql/drivers/mysql/qsql_mysql.h:52,
                 from main.cpp:44:
c:\MySQL\include/mysql_com.h:243: error: 'SOCKET' does not name a type
c:\MySQL\include/mysql_com.h:427: error: 'SOCKET' was not declared in this scope

c:\MySQL\include/mysql_com.h:427: error: expected primary-expression before 'con
st'
c:\MySQL\include/mysql_com.h:427: error: expected primary-expression before 'uns
igned'
c:\MySQL\include/mysql_com.h:428: error: expected primary-expression before 'uns
igned'
c:\MySQL\include/mysql_com.h:428: error: initializer expression list treated as
compound expression
In file included from main.cpp:44:
../../../sql/drivers/mysql/qsql_mysql.h:60: error: 'QT_BEGIN_HEADER' does not na
me a type
../../../sql/drivers/mysql/qsql_mysql.h:70: error: expected class-name before '{
' token
../../../sql/drivers/mysql/qsql_mysql.h:77: error: 'QVariant' does not name a ty
pe
../../../sql/drivers/mysql/qsql_mysql.h:84: error: 'QVariant' does not name a ty
pe
../../../sql/drivers/mysql/qsql_mysql.h:86: error: ISO C++ forbids declaration o
f 'QString' with no type
../../../sql/drivers/mysql/qsql_mysql.h:86: error: expected ',' or '...' before
'&' token
../../../sql/drivers/mysql/qsql_mysql.h:89: error: 'QVariant' does not name a ty
pe
../../../sql/drivers/mysql/qsql_mysql.h:90: error: 'QSqlRecord' does not name a
type
../../../sql/drivers/mysql/qsql_mysql.h:95: error: ISO C++ forbids declaration o
f 'QString' with no type
../../../sql/drivers/mysql/qsql_mysql.h:95: error: expected ',' or '...' before
'&' token
../../../sql/drivers/mysql/qsql_mysql.h:103: error: expected class-name before '
{' token
../../../sql/drivers/mysql/qsql_mysql.h:104: error: ISO C++ forbids declaration
of 'Q_OBJECT' with no type
../../../sql/drivers/mysql/qsql_mysql.h:105: error: expected ';' before 'friend'

../../../sql/drivers/mysql/qsql_mysql.h:107: error: expected ')' before '*' toke
n
../../../sql/drivers/mysql/qsql_mysql.h:108: error: 'QObject' has not been decla
red
../../../sql/drivers/mysql/qsql_mysql.h:110: error: 'DriverFeature' has not been
 declared
../../../sql/drivers/mysql/qsql_mysql.h:111: error: ISO C++ forbids declaration
of 'QString' with no type
../../../sql/drivers/mysql/qsql_mysql.h:111: error: expected ',' or '...' before
 '&' token
../../../sql/drivers/mysql/qsql_mysql.h:118: error: ISO C++ forbids declaration
of 'QSqlResult' with no type
../../../sql/drivers/mysql/qsql_mysql.h:118: error: expected ';' before '*' toke
n
../../../sql/drivers/mysql/qsql_mysql.h:119: error: 'QStringList' does not name
a type
../../../sql/drivers/mysql/qsql_mysql.h:120: error: 'QSqlIndex' does not name a
type
../../../sql/drivers/mysql/qsql_mysql.h:121: error: 'QSqlRecord' does not name a
 type
../../../sql/drivers/mysql/qsql_mysql.h:122: error: 'QString' does not name a ty
pe
../../../sql/drivers/mysql/qsql_mysql.h:124: error: 'QVariant' does not name a t
ype
../../../sql/drivers/mysql/qsql_mysql.h:125: error: 'QString' does not name a ty
pe
../../../sql/drivers/mysql/qsql_mysql.h:127: error: expected ':' before 'Q_SLOTS
'
../../../sql/drivers/mysql/qsql_mysql.h:128: error: expected primary-expression
before 'bool'
../../../sql/drivers/mysql/qsql_mysql.h:128: error: ISO C++ forbids declaration
of 'Q_SLOTS' with no type
../../../sql/drivers/mysql/qsql_mysql.h:128: error: expected ';' before 'bool'
../../../sql/drivers/mysql/qsql_mysql.h:136: error: ISO C++ forbids declaration
of 'QMYSQLDriverPrivate' with no type
../../../sql/drivers/mysql/qsql_mysql.h:136: error: expected ';' before '*' toke
n
../../../sql/drivers/mysql/qsql_mysql.h:139: error: 'QT_END_NAMESPACE' does not
name a type
main.cpp:57: error: 'QMYSQLDriverPlugin' has not been declared
main.cpp:57: error: ISO C++ forbids declaration of 'QMYSQLDriverPlugin' with no
type
main.cpp: In function 'int QMYSQLDriverPlugin()':
main.cpp:58: error: only constructors take base initializers
main.cpp:60: warning: no return statement in function returning non-void
main.cpp: At global scope:
main.cpp:62: error: expected constructor, destructor, or type conversion before
'*' token
mingw32-make: *** [tmp/obj/release_shared/main.o] Error 1


ощущение что пути не установлены как ни странно. Хотя вроде всё ставил верно. 
Qt 4.7.3
Mysql 5.1
PM MAIL ICQ   Вверх
borisbn
Дата 4.7.2011, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



> "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MySQL\lib\opt\libmysql.lib"

Попробуй указать прямые слэши

"INCLUDEPATH+=C:/MySQL/include" "LIBS+=C:/MySQL/lib/opt/libmysql.lib"


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Дшпыук
Дата 4.7.2011, 07:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Не сплю
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 4.3.2010
Где: Омск

Репутация: нет
Всего: 1



Влияет только на Warning после qmake(с обратными слешами был варнинг о том что они deprecated).
После make один в один то же самое получается.
PM MAIL ICQ   Вверх
loneybibi
Дата 4.7.2011, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 28.5.2010
Где: Донецк (Украина)

Репутация: 3
Всего: 3



Компилятор в начале тебе написал:
Код

No such file or directory

Не найден файл или каталог.
У меня было точно такое, мне помогло исправление путей includ'ов в mysql.cpp и mysql.h, а именно как тебе пишет в отладке:
Код

../../../sql/drivers/mysql/qsql_mysql.h:45:30: error: QtSql/qsqldriver.h: No such file or directory

Вот короче либо эти двоеточие убери, либо как я прописал ко всем этим файлам полные пути! 



--------------------
Red Hat Fedora 17
Qt 4.8.1 (x64), GCC 4.4.3,
G++ 4.4.3, QtCreator 2.4.1
PM MAIL ICQ   Вверх
Дшпыук
Дата 4.7.2011, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Не сплю
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 4.3.2010
Где: Омск

Репутация: нет
Всего: 1



Да это я понимаю, просто не хотелось вручную лезть в пути к библиотекам... По идее же стандартная сборка. Ладно попробую - отпишусь.

Это сообщение отредактировал(а) Дшпыук - 4.7.2011, 09:55
PM MAIL ICQ   Вверх
loneybibi
Дата 4.7.2011, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 28.5.2010
Где: Донецк (Украина)

Репутация: 3
Всего: 3



Цитата(Дшпыук @ 4.7.2011,  08:54)
Да это я понимаю, просто не хотелось вручную лезть в пути к библиотекам... По идее же стандартная сборка. Ладно попробую - отпишусь.

Да там на сколько я помню всего пару путей исправить надо ! smile 


--------------------
Red Hat Fedora 17
Qt 4.8.1 (x64), GCC 4.4.3,
G++ 4.4.3, QtCreator 2.4.1
PM MAIL ICQ   Вверх
Дшпыук
Дата 4.7.2011, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Не сплю
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 4.3.2010
Где: Омск

Репутация: нет
Всего: 1



Мне пришлось дописать всем подключаемым файлам их директорию. А то они включались напрямую, а не через QtCore QtSql из за чего ругались.
С путями разгребся. На самом деле удивляет какого черта оно там сделанно так, ну да ладно. Теперь интереснее проблема.

Код

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
oc -mthreads -Wl -shared -Wl,--out-implib,c:\QtSDK\QtSources\4.7.3\plugins\sqldr
ivers\libqsqlmysqld4.a -o ..\..\..\..\plugins\sqldrivers\qsqlmysqld4.dll tmp/obj
/debug_shared/main.o tmp/obj/debug_shared/qsql_mysql.o tmp/obj/debug_shared/moc_
qsql_mysql.o  -L"c:\QtSDK\QtSources\4.7.3\lib" -L"c:\QtSDK\QtSources\4.7.3\lib"
tmp\obj\debug_shared\qsqlmysqld_resource_res.o C:/MySQL/lib/opt/libmysql.lib C:/
MySQL/lib/opt/libmysql.lib -lQtSqld -lQtCored
c:/qtsdk/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cann
ot find -lQtSqld
collect2: ld returned 1 exit status
mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlmysqld4.dll] Error 1
mingw32-make[1]: Leaving directory `C:/QtSDK/QtSources/4.7.3/src/plugins/sqldriv
ers/mysql'
mingw32-make: *** [debug-all] Error 2


Что может значить -lQtSQld? Я такого не видел.

Это сообщение отредактировал(а) Дшпыук - 4.7.2011, 10:25
PM MAIL ICQ   Вверх
loneybibi
Дата 4.7.2011, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 28.5.2010
Где: Донецк (Украина)

Репутация: 3
Всего: 3



Меня тоже это удивило ! Что так хотя такое у меня было только один раз. Потом собиралось нормально. Вот есть отличная инструкция по которой я собирал, вроде доступно написано. Может поможет.

Код

http://ru.opensuse.org/QT_%D0%B8_%D0%91%D0%B0%D0%B7%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85#.D0.A0.D0.B0.D0.B1.D0.BE.D1.82.D0.B0_.D1.81_.D0.B1.D0.B0.D0.B7.D0.B0.D0.BC.D0.B8_.D0.B4.D0.B0.D0.BD.D0.BD.D1.8B.D1.85_.D0.B2_Qt4


А если хочешь могу уже собранные библиотеки прислать на 4.7.1 x32.



Это сообщение отредактировал(а) loneybibi - 4.7.2011, 11:06


--------------------
Red Hat Fedora 17
Qt 4.8.1 (x64), GCC 4.4.3,
G++ 4.4.3, QtCreator 2.4.1
PM MAIL ICQ   Вверх
Дшпыук
Дата 4.7.2011, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Не сплю
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 4.3.2010
Где: Омск

Репутация: нет
Всего: 1



Хм. Собираться отказывается. -lQtSql это по всей видимости попытка включить Qt либу Sql, которую он почему то не может найти. 
Хотя после плясок с путями я не удивляюсь этому, наверняка где то снова косяк.
Попробуй кинуть сборку дров.
ligser [at] gmail.com
PM MAIL ICQ   Вверх
loneybibi
Дата 4.7.2011, 12:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 28.5.2010
Где: Донецк (Украина)

Репутация: 3
Всего: 3



отправил лови.. smile


--------------------
Red Hat Fedora 17
Qt 4.8.1 (x64), GCC 4.4.3,
G++ 4.4.3, QtCreator 2.4.1
PM MAIL ICQ   Вверх
Дшпыук
Дата 4.7.2011, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Не сплю
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 4.3.2010
Где: Омск

Репутация: нет
Всего: 1



Спасибо! =) Подключение заработало)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0818 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.