Название: [+]не собирается sql driver : QOCI Отправлено: michael_ky от Ноябрь 30, 2011, 00:07 Делал по поиску, по инструкциям, докам.
Получил makefile-ы. mingw32-make выплевывает ld.exe : cannot find -loci Если кто с подобным сталкивался, прошу помогите. Подробную информацию оформлю чуть позже. Заранее спасибо. Название: Re: не собирается sql driver : QOCI Отправлено: Пантер от Ноябрь 30, 2011, 07:30 Оракловская либа доступна? Покажи как конфигурил и собирал.
Название: не собирается sql driver : QOCI Отправлено: michael_ky от Ноябрь 30, 2011, 12:45 Цитировать Microsoft Windows [Version 6.1.7601] Руководствовался этим (http://developer.qt.nokia.com/forums/viewthread/6411). В теме даже был пост про мою проблему, решением было якобы OCI.dll path was missing in environment variable. Копировал всевозможными способами, добавлял в переменные среды, эффекта не возымело. Хотя скорее всего что-то не так понял...(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены. C:\Users\Michael>set INCLUDE=C:\Oracle\product\11.2.0\client_xe\oci\include;%INC LUDE% C:\Users\Michael>set LIB=C:\Oracle\product\11.2.0\client_xe\oci\lib\msvc;%LIB% C:\Users\Michael>set PATH=%PATH%;C:\Qt\MinGW\bin;C:\Qt\Desktop\Qt\4.7.4\mingw\bi n C:\Users\Michael>path PATH=C:\Oracle\product\11.2.0\client_xe\bin;C:\Oracle\Express11g\app\oracle\prod uct\11.2.0\server\bin;;C:\Program Files\Common Files\Microsoft Shared\Windows Li ve;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C: \Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;c: \Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Micro soft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Bi nn\;C:\Oracle\product\11.2.0\client_xe\BIN;C:\Qt\MinGW\bin;C:\Qt\Desktop\Qt\4.7. 4\mingw\bin C:\Users\Michael>cd C:\Qt\QtSources\4.7.4\src\plugins\sqldrivers\oci C:\Qt\QtSources\4.7.4\src\plugins\sqldrivers\oci>qmake -o Makefile oci.pro После qmake добавил -I"C:\Oracle\...\include" в makefile.debug и .release C:\Qt\QtSources\4.7.4\src\plugins\sqldrivers\oci>mingw32-make debug mingw32-make -f Makefile.Debug mingw32-make[1]: Entering directory `C:/Qt/QtSources/4.7.4/src/plugins/sqldriver s/oci' g++ -mthreads -shared -Wl,--out-implib,debug\libqsqlocid4.a -o debug\qsqlocid4.d ll debug/main.o debug/qsql_oci.o debug/moc_qsql_oci.o -L"c:\Qt\Desktop\Qt\4.7.4 \mingw\lib" debug\qsqlocid_resource_res.o -loci -lQtSqld4 -lQtCored4 c:/qt/mingw/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/bin/ld.exe: cannot find -loci collect2: ld returned 1 exit status mingw32-make[1]: *** [debug\qsqlocid4.dll] Error 1 mingw32-make[1]: Leaving directory `C:/Qt/QtSources/4.7.4/src/plugins/sqldrivers/oci' mingw32-make: *** [debug] Error 2 Название: Re: не собирается sql driver : QOCI Отправлено: Пантер от Ноябрь 30, 2011, 13:03 Там для msvc рассказано, а у тебя mingw.
Название: Re: не собирается sql driver : QOCI Отправлено: michael_ky от Ноябрь 30, 2011, 13:31 Цитата: qt.nokia.com How to Build the OCI Plugin on Windows Я пытался собрать nmake-ом, но тот отсылался на g++ и результат был аналогичен. Позже где-то вычитал, что так не должно происходить, потому и остановился на mingw32-make.Choosing the option "Programmer" in the Oracle Client Installer from the Oracle Client Installation CD is generally sufficient to build the plugin. For some versions of Oracle Client, you may also need to select the "Call Interface (OCI)" option if it is available. 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 oci.pro nmake If you are not using a Microsoft compiler, replace nmake with make in the line above. When you run your application you will also need to add the oci.dll path to your PATH environment variable: Цитировать set PATH=%PATH%;c:\oracle\bin Название: Re: не собирается sql driver : QOCI Отправлено: Пантер от Ноябрь 30, 2011, 13:44 set LIB=C:\Oracle\product\11.2.0\client_xe\oci\lib\msvc;%LIB%
Ты пытаешься мингвом прилинковать студийную либу. Название: Re: не собирается sql driver : QOCI Отправлено: michael_ky от Ноябрь 30, 2011, 13:58 Цитировать Microsoft Windows [Version 6.1.7601] Стоит Win SDK : VC 9,10. (c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены. C:\Windows\system32>set INCLUDE=C:\Oracle\product\11.2.0\client_xe\oci\include;% INCLUDE% C:\Windows\system32>set LIB=C:\Oracle\product\11.2.0\client_xe\oci\lib\msvc;%LIB % C:\Windows\system32>set PATH=C:\Program Files (x86)\Microsoft Visual Studio 10.0 \VC\bin;%PATH% C:\Windows\system32>cd C:\Qt\QtSources\4.7.4\src\plugins\sqldrivers\oci C:\Qt\QtSources\4.7.4\src\plugins\sqldrivers\oci>nmake Служебная программа обслуживания программ Microsoft (R), версия 10.00.30319.01 (C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены. "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\nmake.exe" - f Makefile.Debug Служебная программа обслуживания программ Microsoft (R), версия 10.00.30319.01 (C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены. g++ -mthreads -shared -Wl,--out-implib,debug\libqsqlocid4.a -o debug\qsq locid4.dll debug/main.o debug/qsql_oci.o debug/moc_qsql_oci.o -L"c:\Qt\Deskto p\Qt\4.7.4\mingw\lib" debug\qsqlocid_resource_res.o -loci -lQtSqld4 -lQtCored4 "g++" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. NMAKE : fatal error U1077: g++ : возвращенный код "0x1" Stop. NMAKE : fatal error U1077: "C:\Program Files (x86)\Microsoft Visual Studio 10.0\ VC\bin\nmake.exe" : возвращенный код "0x2" Stop. C:\Qt\QtSources\4.7.4\src\plugins\sqldrivers\oci>set PATH=C:\Qt\MinGW\bin;%PATH% C:\Qt\QtSources\4.7.4\src\plugins\sqldrivers\oci>nmake Служебная программа обслуживания программ Microsoft (R), версия 10.00.30319.01 (C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены. "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\nmake.exe" - f Makefile.Debug Служебная программа обслуживания программ Microsoft (R), версия 10.00.30319.01 (C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены. g++ -mthreads -shared -Wl,--out-implib,debug\libqsqlocid4.a -o debug\qsq locid4.dll debug/main.o debug/qsql_oci.o debug/moc_qsql_oci.o -L"c:\Qt\Deskto p\Qt\4.7.4\mingw\lib" debug\qsqlocid_resource_res.o -loci -lQtSqld4 -lQtCored4 c:/qt/mingw/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/bin/ld.exe: cannot find -loci collect2: ld returned 1 exit status NMAKE : fatal error U1077: C:\Qt\MinGW\bin\g++.EXE : возвращенный код "0x1" Stop. NMAKE : fatal error U1077: "C:\Program Files (x86)\Microsoft Visual Studio 10.0\ VC\bin\nmake.exe" : возвращенный код "0x2" Stop. C:\Qt\QtSources\4.7.4\src\plugins\sqldrivers\oci> Название: Re: не собирается sql driver : QOCI Отправлено: michael_ky от Ноябрь 30, 2011, 14:18 Оказывается иногда фантастика становится реальностью.
В Makefile.debug обратил внимание на строчку : Код: LIBS = -L"c:\Qt\Desktop\Qt\4.7.4\mingw\lib" debug\qsqlocid_resource_res.o -loci -lQtSqld4 -lQtCored4 Код: LIBS = -L"c:\Qt\Desktop\Qt\4.7.4\mingw\lib" -L"C:\Oracle\product\11.2.0\client_xe\BIN" debug\qsqlocid_resource_res.o -loci -lQtSqld4 -lQtCored4 Осталось узнать работоспособны ли они. UPD. В Makefile.release добавил аналогично с debug путь до BIN и Код: INCPATH = -I"c:\Qt\Desktop\Qt\4.7.4\mingw\include\QtCore" -I"c:\Qt\Desktop\Qt\4.7.4\mingw\include\QtSql" -I"c:\Qt\Desktop\Qt\4.7.4\mingw\include" -I"c:\Qt\Desktop\Qt\4.7.4\mingw\include\ActiveQt" -I"release" -I"c:\Qt\Desktop\Qt\4.7.4\mingw\mkspecs\default" Код: INCPATH = -I"c:\Qt\Desktop\Qt\4.7.4\mingw\include\QtCore" -I"c:\Qt\Desktop\Qt\4.7.4\mingw\include\QtSql" -I"c:\Qt\Desktop\Qt\4.7.4\mingw\include" -I"c:\Qt\Desktop\Qt\4.7.4\mingw\include\ActiveQt" -I"release" -I"c:\Qt\Desktop\Qt\4.7.4\mingw\mkspecs\default" -I"C:\Oracle\product\11.2.0\client_xe\oci\include" Название: Re: не собирается sql driver : QOCI Отправлено: michael_ky от Ноябрь 30, 2011, 14:40 Вроде как работают. Спасибо за помощь.
|