source

Maria가 있는 윈도우즈에서 MYSQL / QMYSQL 플러그인을 빌드하는 동안 오류가 발생했습니다.DB

manysource 2023. 10. 12. 23:22

Maria가 있는 윈도우즈에서 MYSQL / QMYSQL 플러그인을 빌드하는 동안 오류가 발생했습니다.DB

  • 이 구성/빌드 프로세스를 어떻게 작동시키겠습니까?
  • 아래에 언급된 다른 QMAKE ERROR가 발생하는 이유(가능한 경우 세부적으로)는 무엇입니까?)

소스 코드(다운로드 링크 포함):

MariaDB 5.5.56
https://downloads.mariadb.org/mariadb/5.5.56/
Qt 5.7.1
https://download.qt.io/official_releases/qt/5.7/5.7.1/single/

다음 디렉토리에서 MariaDB 5.5.56의 압축을 풀고 성공적으로 빌드합니다.

    D:\Source_Code-Third_Party\MariaDB\mariadb-5.5.56
Note: I "mkdir lib" and copy all ".lib"s into this folder post-build process.

그런 다음 내가 작성한 배치 스크립트를 통해 다음 명령을 사용합니다.

    set QMAKESPEC=win32-msvc2015
    set _ROOT=

    set VS2015PATH="C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC"
    pushd %VS2015PATH%
    call vcvarsall.bat x64
    popd

    set CL=/MP
    set INSTPREFIX=D:\Qt\5.7.1
    set OPENSSL_PATH=%usefulStuff%
    set OPENSSL_LIBS=%usefulStuff%\libs
    set INCLUDE=%usefulStuff%\include;%INCLUDE%
    set LIB=%usefulStuff%\lib;%LIB%
    set LIBPATH=%usefulStuff%\lib;%LIBPATH%

    cd qtbase

    configure.bat -skip qtwebengine -skip qtpurchasing -skip qtlocation -skip qtconnectivity -mp -confirm-licence -nomake tests -nomake examples -debug-and-release -opensource -shared -dbus -mp -openssl -qtzlib -plugin-sql-mysql -I %usefulStuff%\include -L %usefulStuff%\lib -prefix %INSTPREFIX%

    cd src\plugins\sqldrivers\mysql
    set longDir=D:\Source_Code-Third_Party\qt-everywhere-opensource-src-5.7.1

    REM           (QMAKE COMMAND THAT CAUSES ERROR)
    %longDir%\qtbase\bin\qmake "INCLUDEPATH+= D:/Source_Code-Third_Party/MariaDB/mariadb-5.5.56/include" "LIBS+=D:/Source_Code-Third_Party/MariaDB/mariadb-5.5.56/lib/libmysql.lib" mysql.pro

    REM unsure if I should do an nmake here as well, or will the qtbase\nmake take care of everything (including plugin)
    REM nmake

    cd ..\..\..\..

    nmake
    nmake install

위(QMAKE ERROR COMMAND)를 사용하면 다음과 같은 오류가 발생합니다.

    Project ERRROR: No module claims plugin type 'sqldrivers'

(QMAKE ERROR COMMAND)를 다음과 같이 변경할 경우(다른 qmake 사용):

    %longDir%\qtbase\qmake\qmake "INCLUDEPATH+= D:/Source_Code-Third_Party/MariaDB/mariadb-5.5.56/include" "LIBS+=D:/Source_Code-Third_Party/MariaDB/mariadb-5.5.56/lib/libmysql.lib" mysql.pro

다른 오류가 발생합니다.

     Project ERROR: Cannot load qmodule.pri!
     Error processing project file: mysql.pro

제가 찾을 수 있었던 몇 가지 참고 자료:
https://forum.qt.io/topic/51808/notorious-qsqldatabase-qmysql-driver-not-loaded-but-available/4

다음 링크(Qt Documentation)는 "2개 이상의 링크를 게시하려면 최소 10개의 평판이 필요합니다."라는 코드 형식입니다.

    http://doc.qt.io/qt-5/sql-driver.html#qmysql-for-mysql-4-and-higher

이 질문에 "qmysql"로 태그를 지정했지만 "'qmysql' 새 태그를 만들려면 적어도 1500개의 명성이 필요합니다.대신 기존 태그 목록에서 뭔가를 시도해 보세요."

---- 아래는 관련된 내용이지만, 위에 언급된 오류들에 대해서는 더 신경이 쓰입니다. --
"-skip", "-plugin-sql-mysql" 및/또는 "-qt-sql-mysql"을 configure.bat로 작업할 수 없으므로 Qt 5.8.0 또는 5.9.0을 사용하지 않습니다.다음과 같은 오류가 발생합니다.

    "-qt-sql-mysql"
    ERROR: Invalid value given for boolean command line option 'sql-mysql'.
                               OR
    "-plugin-sql-mysql"
    ERROR: Feature 'sql-mysql' was enabled, but the pre-condition 'libs.mysql' failed.
    Check config.log for details.
                               OR
    "-skip <somethingIShouldBeAbleToSkip>"
    ERROR: Unknown command line option '-skip'.

찾은 QTBUG 참조 중 하나:
https://bugreports.qt.io/browse/QTBUG-58536

  • 만약 누군가/사람들이 두 가지 질문과 더 많은 질문에 대답한다면, 그것은 정말 멋질 것입니다!
  • 모두 미리 감사드립니다!!

Windows에서 MariaDB를 구축할 때 다음 지침을 따릅니다.

https://mariadb.com/kb/en/the-mariadb-library/Building_MariaDB_on_Windows/

빌드한 후에는 시스템에 설치를 진행해야 합니다.이 설치 프로세스는 QT 빌드 프로세스에 적합한 폴더 구조로 모든 것을 배치합니다.

MariaDB를 설치한 후(MySQL 설치와 똑같이 보여야 함) MySQL의 표준 QT 빌드 지침을 따를 수 있어야 합니다.

http://doc.qt.io/qt-5/sql-driver.html

QT를 구성할 때 "-qt-sql-mysql -IC:\progra~1\mysql\lib"과 유사한 것을 사용하면 -LC:\progra~1\mysql\lib이 포함됩니다.저는 이 과정을 QT 5.7.1과 함께 사용했습니다.

Snowman6286의 답변 외에 기본 Qt로 빌드하려면 다음 작업을 수행해야 합니다.

Qt는 /MD 플래그가 정상적으로 설정된 상태로 구축되므로 Qt가 이를 연동하기 위해서는 MariaDB가 동일하게 구축되어야 합니다.을 주는 은 .\cmake\os\os\"다에 .window.cmake.과 같은 으로 달겠습니다.STRING(REPLACE "/MD" "/MT" "${flag}" "${${flag}}")가 . 라고 ADD_SUBDIRECTORY(win/upgrade_wizard)루트 CMakeLists 에 저장됩니다.txt.txt.txt.txt.

언급URL : https://stackoverflow.com/questions/46100818/error-building-mysql-qmysql-plugin-on-windows-with-mariadb