Начало » Использование СУБД » Firebird, HQbird, InterBase » Драйвер Firebird для Qt 6.6 (Не удаётся скомпилировать драйвер.)
Драйвер Firebird для Qt 6.6 [сообщение #3828] |
Thu, 23 November 2023 12:09 |
dikiy
Сообщений: 4 Зарегистрирован: November 2023
|
Junior Member |
|
|
Добрый день. Никак не получается собрать драйвер для Firebird в Qt 6.6 под Windows. Кто-нибудь пробовал? Раньше в версии Qt 5.12 это было гораздо проще, а теперь Qt6 заставляют использовать CMake и Ninja для сборки SQL-драйверов и эта связка ни как не работает. А старый проект драйвера от 5.12 требует слишком много всяких вещей, которые теперь в 6.6 удалены.
Файлы для сборки, которые предоставляет Qt требуют доработки, т.к. там везде указаны пути по-умолчанию. Я их все отредактировал. Настроил все пути. Но вот такой выход получается:
C:\Users\user>C:\Qt\6.6.0\mingw_64\bin\qt-cmake-user -G Ninja -DCMAKE_MAKE_PROGRAM="C:\Qt\Tools\Ninja\ninja.exe" -S C:\Qt\6.6.0\Src\qtbase\src\plugins\sqldrivers -B C:\Qt\6.6.0\Src\qtbase\src\plugins\sqldrivers\ibase\build -DInterbase_INCLUDE_DIR="H:\Qt\Firebird_3.0\Firebird_3_0\include " -DInterbase_LIBRARY="H:\Qt\Firebird_3.0\Firebird_3_0\lib\fbclient_ms.lib "
-- The CXX compiler identification is unknown
-- The C compiler identification is unknown
-- The ASM compiler identification is GNU
-- Found assembler: C:/Qt/Tools/mingw1120_64/bin/gcc.exe
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: C:/Qt/Tools/mingw1120_64/bin/g++.exe
-- Check for working CXX compiler: C:/Qt/Tools/mingw1120_64/bin/g++.exe - broken
CMake Error at C:/Qt/Tools/CMake_64/share/cmake-3.24/Modules/CMakeTestCXXCo mpiler.cmake:62 (message):
The C++ compiler
"C:/Qt/Tools/mingw1120_64/bin/g++.exe"
is not able to compile a simple test program.
It fails with the following output:
Change Dir: C:/Qt/6.6.0/Src/qtbase/src/plugins/sqldrivers/ibase/build/CM akeFiles/CMakeTmp
Run Build Command(s):C:\Qt\Tools\Ninja\ninja.exe cmTC_29d4b && [1/2] Building CXX object CMakeFiles\cmTC_29d4b.dir\testCXXCompiler.cxx.obj
FAILED: CMakeFiles/cmTC_29d4b.dir/testCXXCompiler.cxx.obj
C:\Qt\Tools\mingw1120_64\bin\g++.exe -o CMakeFiles\cmTC_29d4b.dir\testCXXCompiler.cxx.obj -c C:\Qt\6.6.0\Src\qtbase\src\plugins\sqldrivers\ibase\build\CM akeFiles\CMakeTmp\testCXXCompiler.cxx
ninja: build stopped: subcommand failed.
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:7 (project)
-- Configuring incomplete, errors occurred!
See also " C:/Qt/6.6.0/Src/qtbase/src/plugins/sqldrivers/ibase/build/CM akeFiles/CMakeOutput.log ".
See also " C:/Qt/6.6.0/Src/qtbase/src/plugins/sqldrivers/ibase/build/CM akeFiles/CMakeError.log ".
[Обновления: Thu, 23 November 2023 12:12] Известить модератора
|
|
|
|
|
|
|
Re: Драйвер Firebird для Qt 6.6 [сообщение #3845 является ответом на сообщение #3844] |
Mon, 27 November 2023 10:57 |
dikiy
Сообщений: 4 Зарегистрирован: November 2023
|
Junior Member |
|
|
Сборка SQL-драйвера для Qt6.
Действительно для версий ПО:
Windows 10 Pro x64 22H2 19045.2006 120.2212.4180.0
Qt 6.6.0
Qt Creator 11.0.3 (6.4.3, MSVC 2019, x86_64)
MinGW 11.2.0 x64
CMake 3.24.2
Ninja 28.11.2020 15:06
Firebird 3.0.11.11703
Официальная документация по этому вопросу описывает параллельную реальность со сферическим драйвером в вакууме.
1. Qt должен быть установлен с исходниками.
2. Должен быть установлен Firebird с исходниками.
3. Firebird установлен по умолчанию тут:
C:\Program Files\Firebird
Пробел в названии папки "Program Files" делает сборку драйвера невозможным. Поэтому делаем копию для сборки драйвера тут:
H:\Qt\Firebird
4. Создаём папку для сборки драйвера тут:
H:\Qt\build-sqldrivers-Desktop_Qt_6_6_0_MinGW_64_bit-Release
Папка должна быть пустой. Если папка уже существует, то нужно удалить от туда всё содержимое.
5. Проверяем исходники драйвера тут:
C:\Qt\6.6.0\Src\qtbase\src\plugins\sqldrivers
Там должен быть файл CMakeLists.txt, он понадобится.
И не должно быть файла CMakeLists.txt.user, он будет создан позже. Если этот файл есть - удаляем.
6. Открываем Qt Creator. Меню "Файл", "Открыть файл или проект" и открываем этот файл:
C:\Qt\6.6.0\Src\qtbase\src\plugins\sqldrivers\CMakeLists.txt
7. Ставим галочку напротив нужного компилятора: MinGW 11.2.0 x64.
Справа разворачиваем дополнительные настройки и снимаем галочки напротив всех вариантов сборки кроме Выпуск.
Применяем изменения (кнопка, правый нижний угол).
8. В режиме "Редактор" открывается проект "QSQLiteDriverPlugin", который будет иметь подпапки соответствующие разным типам баз данных, но подпапки "ibase" для драйвера Firebird там не будет.
9. Переходим в режим "Проекты". Проверяем что "Каталог сборки" правильный:
H:\Qt\build-sqldrivers-Desktop_Qt_6_6_0_MinGW_64_bit-Release .
10. Ниже работаем с вкладкой "Current Configuration".
Ключ "FEATURE_sql_ibase" в таблице будем иметь значение "OFF".
Для выполнения настройки поставим галочку "Дополнительно" справа.
11. Над таблицей ключей и значений есть поле поиска. Вводим туда Interbase_INCLUDE_DIR. Меняем значение ключа на
H:\Qt\Firebird\Firebird_3_0\include
Для сохранения изменений щёлкаем мышкой на название ключа, т.е. на текст Interbase_INCLUDE_DIR.
12. В поиске вводим Interbase_LIBRARY и меняем значение этого ключа на
H:\Qt\Firebird\Firebird_3_0\lib\fbclient_ms.lib
Для сохранения изменений щёлкаем мышкой на название ключа.
13. Снимаем галочку "Дополнительно".
14. Под таблицей ключей нажимаем кнопку "Запустить CMake". На запрос о применении изменений ключей нужно согласиться. Будет предложено изменить три ключа: два, которые были отредактированы и третий это FEATURE_sql_ibase с новым значением "ON".
15. Убеждаемся что ключ "FEATURE_sql_ibase" в таблице теперь иметь значение "ON".
16. Снимаем галочки напротив ненужных ключей таких как: "FEATURE_sql_odbc" и "FEATURE_sql_sqlite".
17. В режиме "Редактор" проект "QSQLiteDriverPlugin" теперь будет иметь подпапку "ibase" для драйвера Firebird.
18. Меню "Сборка", "Собрать проект "QSQLiteDriverPlugin"". Если будет запрошено применение изменений на изменение значений ключей "FEATURE_sql_odbc" и "FEATURE_sql_sqlite" в состояние "OFF", нужно согласиться.
19. Файл драйвера, в случае успешной сборки будет тут:
H:\Qt\build-sqldrivers-Desktop_Qt_6_6_0_MinGW_64_bit-Release \plugins\sqldrivers\qsqlibase.dll
20. Файл копируется в папку
C:\Qt\6.6.0\mingw_64\plugins\sqldrivers
а также туда, куда Вам надо.
|
|
|
Переход к форуму:
Текущее время: Mon Dec 23 05:12:20 GMT+3 2024
Общее время, затраченное на создание страницы: 0.00830 секунд
|