Russian Qt Forum
Ноябрь 23, 2024, 11:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Как собрать драйвер Oracle?  (Прочитано 12572 раз)
pen
Гость
« : Февраль 21, 2007, 09:09 »

Здравствуйте.
Есть коммерческий QT 4.2.0.
В директории ../plugins/sqldrivers/ есть драйвера qsqlite, qsqlmysql, qsqlpsql, qsqlodbc.
Мне нужен драйвер Oracle.
Прошу помощи у уже собиравших этот драйвер. Если возможно, то в  разверутом виде, т.к. мой уровень программирования оставляет желать лучшего.
ОС: Windows XP Pro, также установлены MS VS2005, и клиент Oracle 9i
Спасибо.
P.S. если бы кто-то выслал мне на мыло драйвер был бы признателен.
Записан
nova
Гость
« Ответ #1 : Февраль 21, 2007, 11:10 »

В асистенте, в разделе SQL Database Drivers написано как собрать драйвер.
У меня проблем никогда не возникало Улыбающийся
Записан
pen
Гость
« Ответ #2 : Февраль 21, 2007, 15:38 »

К сожалению, у меня не получается собрать его таким образом :-(
вот моя последовательность действий:

D:\Qt\4.2.0>set INCLUDE=%INCLUDE%;c:\ORA902\oci\include
D:\Qt\4.2.0>echo %INCLUDE%
%INCLUDE%;c:\ORA902\oci\include
D:\Qt\4.2.0>set LIB=%LIB%;c:\ORA902\oci\lib\msvc
D:\Qt\4.2.0>echo %LIB%
%LIB%;c:\ORA902\oci\lib\msvc
D:\Qt\4.2.0>cd D:\Qt\4.2.0\src\plugins\sqldrivers\oci
D:\Qt\4.2.0\src\plugins\sqldrivers\oci>qmake -o Makefile oci.pro
D:\Qt\4.2.0\src\plugins\sqldrivers\oci>D:\MS_VS2005\VC\bin\nmake

Microsoft (R) Program Maintenance Utility Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

        D:\MS_VS2005\VC\bin\nmake.exe -f Makefile.Debug all

Microsoft (R) Program Maintenance Utility Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

        g++ -c -g -g -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_EDITI
ON=QT_EDITION_DESKTOP -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_Q
MAIN -I"D:/Qt/4.2.0/include/QtCore" -I"D:/Qt/4.2.0/include/QtCore" -I"D:/Qt/4.2.0/include/
QtGui" -I"D:/Qt/4.2.0/include/QtGui" -I"D:/Qt/4.2.0/include" -I"." -I"D:/Qt/4.2.0/include/
ActiveQt" -I"tmp\moc\debug_shared" -I"." -I"..\..\..\..\mkspecs\win32-g++" -o tmp\obj\debu
g_shared\main.o main.cpp
main.cpp:22:30: qsqldriverplugin.h: No such file or directory
main.cpp:27: error: expected class-name before '{' token
main.cpp: In constructor `QOCIDriverPlugin::QOCIDriverPlugin()':
main.cpp:36: error: class `QOCIDriverPlugin' does not have any field named `QSqlDriverPlug
in'
main.cpp: At global scope:
main.cpp:58: error: expected constructor, destructor, or type conversion before "Q_EXPORT_
PLUGIN2"
main.cpp:58: error: expected `,' or `;' before "Q_EXPORT_PLUGIN2"
NMAKE : fatal error U1077: 'D:\Qt\mingw\bin\g++.EXE' : return code '0x1'
Stop.
NMAKE : fatal error U1077: 'D:\MS_VS2005\VC\bin\nmake.exe' : return code '0x2'
Stop.

D:\Qt\4.2.0\src\plugins\sqldrivers\oci>

___________
вроде бы все как описано в ассистанте, но увы, не получается собрать :-(
Буду признателен за любую помощь
Записан
zabivator
Гость
« Ответ #3 : Февраль 21, 2007, 16:20 »

Видна ошибка - компилишь ты при помощи g++ а make зовется почему-то студийный - nmake. Сюда копай, почему так происходит.
Записан
pen
Гость
« Ответ #4 : Февраль 21, 2007, 17:03 »

в ассистанте сказано:
Build the plugin as follows (here it is assumed that Oracle Client is installed in C:\oracle):
     set INCLUDE=%INCLUDE%;c:\oracle\oci\include
     set LIB=%LIB%;c:\oracle\oci\lib\msvc
     cd %QTDIR%\src\plugins\sqldrivers\oci
     qmake -o Makefile oci.pro
     nmake
If you are not using a Microsoft compiler, replace nmake with make in the line above.
_______________
я пробовал собрать и при помощи MinGW 3.80 (mingw32-make)
также не собирается.
Может кто-то сталкивался с такой проблемой и решил ее. Пожалуйста, помогите мне разрешить ее.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #5 : Февраль 21, 2007, 17:15 »

вот ошибка
main.cpp:22:30: qsqldriverplugin.h: No such file or directory

поставте путь к нему -Ipath
Записан
pen
Гость
« Ответ #6 : Февраль 21, 2007, 18:17 »

Путь поставил, теперь вылазит другая ошибка:

D:\Qt\4.2.0\src\plugins\sqldrivers\oci>D:\MS_VS2005\VC\bin\nmake

Microsoft (R) Program Maintenance Utility Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

        D:\MS_VS2005\VC\bin\nmake.exe -f Makefile.Debug all

Microsoft (R) Program Maintenance Utility Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.
       
       g++ -c -g -g -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_EDITI
ON=QT_EDITION_DESKTOP -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_Q
MAIN -I"D:\Qt\4.2.0\include\QtCore" -I"D:\Qt\4.2.0\include\QtCore" -I"D:\Qt\4.2.0\include\
QtGui" -I"D:\Qt\4.2.0\include\QtGui" -I"D:\Qt\4.2.0\include" -I"." -I"..\..\..\sql\kernel"
 -I"D:\Qt\4.2.0\include\ActiveQt" -I"tmp\moc\debug_shared" -I"." -I"..\..\..\..\mkspecs\wi
n32-g++" -I"C:\ORA902\oci\include" -o tmp\obj\debug_shared\moc_qsql_oci.o tmp\moc\debug_sh
ared\moc_qsql_oci.cpp
tmp\moc\debug_shared\moc_qsql_oci.cpp:36: error: definition of static data member 'QOCIDri
ver::staticMetaObject' of dllimport'd class.
tmp\moc\debug_shared\moc_qsql_oci.cpp:36: warning: 'QOCIDriver::staticMetaObject' defined
locally after being referenced with dllimport linkage
NMAKE : fatal error U1077: 'D:\Qt\mingw\bin\g++.EXE' : return code '0x1'
Stop.
NMAKE : fatal error U1077: 'D:\MS_VS2005\VC\bin\nmake.exe' : return code '0x2'
Stop.
Записан
zabivator
Гость
« Ответ #7 : Февраль 21, 2007, 19:22 »

Повторяю, у тебя компилятор зовется gcc, а make из студии (nmake) отсюда все и проблемы.
Записан
pen
Гость
« Ответ #8 : Февраль 22, 2007, 08:48 »

Цитата: "zabivator"
Повторяю, у тебя компилятор зовется gcc, а make из студии (nmake) отсюда все и проблемы.

Zabivaror, чем же собрать тогда? Я пробовал собрать в MinGW тоже вываливается с ошибкой. Я уже отчаялся :-(
Записан
Вудруф
Гость
« Ответ #9 : Февраль 22, 2007, 10:02 »

Так вот и приведи ошибки, которые говорит mingw32-make...
Записан
pen
Гость
« Ответ #10 : Февраль 22, 2007, 11:04 »

Вот,

D:\Qt\4.2.0\src\plugins\sqldrivers\oci>D:\Qt\MinGW\bin\mingw32-make.exe
D:/Qt/MinGW/bin/mingw32-make.exe -f Makefile.Debug all
Makefile.Debug:62: *** multiple target patterns.  Stop.
mingw32-make.exe[1]: Entering directory `D:/Qt/4.2.0/src/plugins/sqldrivers/oci'
mingw32-make.exe[1]: Leaving directory `D:/Qt/4.2.0/src/plugins/sqldrivers/oci'
D:\Qt\MinGW\bin\mingw32-make.exe: *** [debug-all] Error 2

D:\Qt\4.2.0\src\plugins\sqldrivers\oci>
Записан
Вудруф
Гость
« Ответ #11 : Февраль 24, 2007, 17:19 »

Цитировать
multiple target patterns

Насколько я понимаю, в данном случае он считает, что под цель all подходит несколько вариантов одновременно. Могу и ошибаться.
Попробуйте просмотреть полученный makefile.
Записан
pen
Гость
« Ответ #12 : Февраль 27, 2007, 09:49 »

Похоже, мне так и не удастся собрать этот драйвер :-(
форумчане, кто не жадный, вышлите пожалуйста мне драйвер на peter_pen@pochta.ru
заранее спасибо
Записан
TukiNov
Гость
« Ответ #13 : Февраль 27, 2007, 17:42 »

увы у меня только для 3.3.6

добавлено спустя 15 минут:

 хотя только что собрал qoci под 4.2.0 MSVS2005. могу его выслать
Записан
odin
Гость
« Ответ #14 : Февраль 27, 2007, 19:19 »

дружочек Улыбающийся.... у меня такое чувство что у тебя в QMAKESPEC прописано - win-g++, а собираеш ты из консоли msvc
Цитировать

NMAKE : fatal error U1077: 'D:\Qt\mingw\bin\g++.EXE' : return code '0x1'
Stop.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.