跳到內容
  • 版面
  • 最新
  • 標籤
  • 熱門
  • 使用者
  • 群組
  • 搜尋
  • Get Qt Extensions
  • Unsolved
Collapse
品牌標誌
  1. 首頁
  2. Qt Development
  3. General and Desktop
  4. Qt static with MySQL issue
Forum Updated to NodeBB v4.3 + New Features

Qt static with MySQL issue

已排程 已置頂 已鎖定 已移動 Solved General and Desktop
50 貼文 4 Posters 23.1k 瀏覽 1 Watching
  • 從舊到新
  • 從新到舊
  • 最多點贊
回覆
  • 在新貼文中回覆
登入後回覆
此主題已被刪除。只有擁有主題管理權限的使用者可以查看。
  • Cobra91151C 離線
    Cobra91151C 離線
    Cobra91151
    寫於 最後由 Cobra91151 編輯
    #1

    Hi! I have built Qt statically with MySQL -sql-mysql. Then I included library to the project pro file:

    LIBS += -L"C:/MySQL/mysql-5.7.22-win32/lib" -lmysqlclient

    But it still requires libmysql.dll.

    Screenshot:

    0_1536260054707_2018-09-06_215309.png

    I use mysqlclient because info in the MySQL docs states that this lib is static - http://ftp.nchu.edu.tw/MySQL/doc/refman/5.0/en/windows-client-compiling.html

    I also tried with LIBS += -L"C:/MySQL/mysql-5.7.22-win32/lib" -llibmysql but the same issue still exists. I want to have this library embedded into the executable. I have compiled Qt 5.9.6 with mysql-5.7.22-win32. Any ideas how to make it embedded? Thanks.

    1 條回覆 最後回覆
    0
    • SGaistS 離線
      SGaistS 離線
      SGaist
      Lifetime Qt Champion
      寫於 最後由 編輯
      #2

      Hi,

      That's likely because you are linking to the dynamic version of libqmysqlclient.

      Check that you really have a static version of the MySQL client library.

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      Cobra91151C 1 條回覆 最後回覆
      1
      • SGaistS SGaist

        Hi,

        That's likely because you are linking to the dynamic version of libqmysqlclient.

        Check that you really have a static version of the MySQL client library.

        Cobra91151C 離線
        Cobra91151C 離線
        Cobra91151
        寫於 最後由 Cobra91151 編輯
        #3

        @SGaist

        Hi! You are right. I have updated the MySQL to mysql-5.7.23 and run a few tests, then commented the code:

        #LIBS += -L"C:/MySQL/mysql-5.7.23-win32/lib" -llibmysql
        #LIBS += -L"C:/MySQL/mysql-5.7.23-win32/lib" -lmysqlclient
        

        I get the issue:
        :-1: error: LNK1181: cannot open input file 'C:\MySQL\mysql-5.7.22-win32\lib\libmysql.lib'

        This means that Qt uses the wrong MySQL lib (shared). It should use mysqlclient (static). So I need to reconfigure it with lib path to exactly point to the C:\MySQL\mysql-5.7.23-win32\lib\mysqlclient.lib static library or remove all the libs from the directory except for the mysqlclient.lib? Thanks.

        1 條回覆 最後回覆
        0
        • SGaistS 離線
          SGaistS 離線
          SGaist
          Lifetime Qt Champion
          寫於 最後由 編輯
          #4

          Are you sure C:\MySQL\mysql-5.7.23-win32\lib\mysqlclient.lib is a static library ? The .lib files can either be static libraries or import libraries.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          Cobra91151C 2 條回覆 最後回覆
          0
          • SGaistS SGaist

            Are you sure C:\MySQL\mysql-5.7.23-win32\lib\mysqlclient.lib is a static library ? The .lib files can either be static libraries or import libraries.

            Cobra91151C 離線
            Cobra91151C 離線
            Cobra91151
            寫於 最後由 Cobra91151 編輯
            #5

            @SGaist

            Yes, I know, it could be static/shared library. I don't know 100% this library is static. But from MySQL docs:

            2.16.7. Compiling MySQL Clients on Windows
            ...
            You can either link your code with the dynamic libmysql.lib library, which is just a wrapper to load in libmysql.dll on demand, or link with the static mysqlclient.lib library.
            
            The MySQL client libraries are compiled as threaded libraries, so you should also compile your code to be multi-threaded.
            

            It should be static. I will check it with Visual Studio 2017 static MFC test project.

            1 條回覆 最後回覆
            0
            • SGaistS 離線
              SGaistS 離線
              SGaist
              Lifetime Qt Champion
              寫於 最後由 編輯
              #6

              Are you looking at the latest version of the documentation ?

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 條回覆 最後回覆
              0
              • SGaistS SGaist

                Are you sure C:\MySQL\mysql-5.7.23-win32\lib\mysqlclient.lib is a static library ? The .lib files can either be static libraries or import libraries.

                Cobra91151C 離線
                Cobra91151C 離線
                Cobra91151
                寫於 最後由 編輯
                #7

                @SGaist

                So, you are right! I have checked the mysqlclient.lib using VS 2017 static MFC test project and I get the issues:

                0_1536266586233_2018-09-06_234252.png

                It means this library is a dynamic. So where to get the static library or source files to build this library as static? Thanks.

                1 條回覆 最後回覆
                0
                • SGaistS 離線
                  SGaistS 離線
                  SGaist
                  Lifetime Qt Champion
                  寫於 最後由 編輯
                  #8

                  MT and MD are just related to the Windows runtime type you'll be using.

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  Cobra91151C 2 條回覆 最後回覆
                  0
                  • SGaistS SGaist

                    MT and MD are just related to the Windows runtime type you'll be using.

                    Cobra91151C 離線
                    Cobra91151C 離線
                    Cobra91151
                    寫於 最後由 Cobra91151 編輯
                    #9

                    @SGaist

                    I have checked it using lib /list mysqlclient.lib and 7zip, it displayed:

                    0_1536267302253_2018-09-06_235447.png

                    This means the library is 100% static. So how to add it to Qt during reconfiguration? Should I provide full path to the library or remove all libs except mysqlclient.lib and provide path? Thanks.

                    1 條回覆 最後回覆
                    0
                    • SGaistS 離線
                      SGaistS 離線
                      SGaist
                      Lifetime Qt Champion
                      寫於 最後由 編輯
                      #10

                      Can you show which configuration options you used ?

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      Cobra91151C 1 條回覆 最後回覆
                      0
                      • SGaistS SGaist

                        Can you show which configuration options you used ?

                        Cobra91151C 離線
                        Cobra91151C 離線
                        Cobra91151
                        寫於 最後由 Cobra91151 編輯
                        #11

                        @SGaist

                        Ok, my batch file:

                        SET /P qtBuildType=Qt build type (shared/static): 
                        SET /P qtBuildMySqlIncludePath=MySql include path: 
                        SET /P qtBuildMySqlLibPath=MySql lib path: 
                        SET /P qtBuildOpenSSLIncludePath=OpenSSL include path: 
                        SET /P qtBuildOpenSSLLibPath=OpenSSL lib path: 
                        SET /P qtBuildPath=Enter Qt build path: 
                        configure.bat -debug-and-release -%qtBuildType% -opensource -nomake tools -nomake examples -no-ltcg -sql-mysql -I "%qtBuildMySqlIncludePath%" -L "%qtBuildMySqlLibPath%" -ssl -openssl -openssl-linked -I "%qtBuildOpenSSLIncludePath%" -L "%qtBuildOpenSSLLibPath%" OPENSSL_LIBS="-lUser32 -lAdvapi32 -lGdi32 -lCrypt32" OPENSSL_LIBS_DEBUG="-lssleay32MTd -llibeay32MTd" OPENSSL_LIBS_RELEASE="-lssleay32MT -llibeay32MT" -prefix "%qtBuildPath%"
                        

                        For example, MySql include path was : C:\MySQL\mysql-5.7.22-win32\include and MySql lib path C:\MySQL\mysql-5.7.22-win32\lib but it make Qt to use C:\MySQL\mysql-5.7.22-win32\lib\libmysql.lib (dynamic). I think, should be another way to set proper library.

                        1 條回覆 最後回覆
                        0
                        • SGaistS 離線
                          SGaistS 離線
                          SGaist
                          Lifetime Qt Champion
                          寫於 最後由 編輯
                          #12

                          I would add MYSQL_LIBS=-lmysqlclient.

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          Cobra91151C 1 條回覆 最後回覆
                          1
                          • SGaistS SGaist

                            I would add MYSQL_LIBS=-lmysqlclient.

                            Cobra91151C 離線
                            Cobra91151C 離線
                            Cobra91151
                            寫於 最後由 編輯
                            #13

                            @SGaist

                            Ok. I will try it and reply. Thanks.

                            1 條回覆 最後回覆
                            0
                            • Cobra91151C 離線
                              Cobra91151C 離線
                              Cobra91151
                              寫於 最後由 編輯
                              #14

                              I added the MYSQL_LIBS="-lmysqlclient" to configure:

                              configure.bat -debug-and-release -%qtBuildType% -opensource -nomake tools -nomake examples -no-ltcg -sql-mysql -I "%qtBuildMySqlIncludePath%" -L "%qtBuildMySqlLibPath%" MYSQL_LIBS="-lmysqlclient" -ssl -openssl -openssl-linked -I "%qtBuildOpenSSLIncludePath%" -L "%qtBuildOpenSSLLibPath%" OPENSSL_LIBS="-lUser32 -lAdvapi32 -lGdi32 -lCrypt32" OPENSSL_LIBS_DEBUG="-lssleay32MTd -llibeay32MTd" OPENSSL_LIBS_RELEASE="-lssleay32MT -llibeay32MT" -prefix "%qtBuildPath%"
                              

                              But I get the issue:

                              0_1536309866313_2018-09-07_114417.png

                              I think I should also provide the libmysql to MYSQL_LIBS or the problem is with mysql-5.7.23.

                              1 條回覆 最後回覆
                              0
                              • Cobra91151C 離線
                                Cobra91151C 離線
                                Cobra91151
                                寫於 最後由 編輯
                                #15

                                I have found the issue! Adding this line MYSQL_LIBS="-lmysqlclient" to configure for some reason breaks the detection of MySQL. I will try again to confirm it.

                                1 條回覆 最後回覆
                                0
                                • Cobra91151C 離線
                                  Cobra91151C 離線
                                  Cobra91151
                                  寫於 最後由 編輯
                                  #16

                                  Yes, I was right. Adding MYSQL_LIBS="-lmysqlclient" breaks the detection of MySQL - 100% confirmed.

                                  1 條回覆 最後回覆
                                  0
                                  • Cobra91151C 離線
                                    Cobra91151C 離線
                                    Cobra91151
                                    寫於 最後由 編輯
                                    #17

                                    I run a few tests and found that Qt requires libmysql.lib to configure, but since it dynamic lib it won't work in my case. I think I should try to rename mysqlclient.lib to libmysql.lib and test it.

                                    1 條回覆 最後回覆
                                    0
                                    • Cobra91151C 離線
                                      Cobra91151C 離線
                                      Cobra91151
                                      寫於 最後由 Cobra91151 編輯
                                      #18

                                      No, it fails with detection the MySQL if libmysql.lib has been changed, renamed or removed.

                                      1 條回覆 最後回覆
                                      0
                                      • Cobra91151C 離線
                                        Cobra91151C 離線
                                        Cobra91151
                                        寫於 最後由 編輯
                                        #19

                                        I think I have found the issue.

                                        0_1536347309737_2018-09-07_220816.png

                                        This line of code in the file - configure.json - { "libs": "-lmysqlclient", "condition": "!config.win32" } disables mysqlclient (static) lib because condition states that !win32, means not Windows system. I will change it and try again.

                                        1 條回覆 最後回覆
                                        0
                                        • Cobra91151C 離線
                                          Cobra91151C 離線
                                          Cobra91151
                                          寫於 最後由 Cobra91151 編輯
                                          #20

                                          I have tried different solutions but it all failed.

                                          The config.log:

                                          + cd /d D:\QtBuild\Src\config.tests\mysql && D:\QtBuild\Src\qtbase\bin\qmake.exe "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += static warn_off console single_arch" "QMAKE_LIBDIR += C:\\MySQL\\mysql-5.7.23-win32\\lib C:\\OpenSSL\\openssl-1.0.2l-vs2017\\lib" "INCLUDEPATH += C:\\MySQL\\mysql-5.7.23-win32\\include C:\\OpenSSL\\openssl-1.0.2l-vs2017\\include" "LIBS += -lmysqlclient" D:/QtBuild/Src/config.tests/mysql
                                          + cd /d D:\QtBuild\Src\config.tests\mysql && set MAKEFLAGS=& nmake
                                          > Microsoft (R) Program Maintenance Utility Version 14.15.26726.0
                                          > Copyright (C) Microsoft Corporation.  All rights reserved.
                                          > 	cl -c -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zi -MDd -W0 -EHsc /Fdmysql.vc.pdb -DUNICODE -D_UNICODE -DWIN32 -I. -IC:\MySQL\mysql-5.7.23-win32\include -IC:\OpenSSL\openssl-1.0.2l-vs2017\include -ID:\QtBuild\Src\qtbase\mkspecs\win32-msvc -Fo @C:\Users\cobra\AppData\Local\Temp\nmC064.tmp
                                          > main.cpp
                                          > 	link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:mysql.exe @C:\Users\cobra\AppData\Local\Temp\nmC2B7.tmp
                                          > LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
                                          > mysqlclient.lib(xml.obj) : error LNK2001: unresolved external symbol __imp__sprintf
                                          > mysqlclient.lib(libmysql.obj) : error LNK2001: unresolved external symbol __imp__sprintf
                                          > mysqlclient.lib(my_time.obj) : error LNK2001: unresolved external symbol __imp__sprintf
                                          > mysqlclient.lib(client.obj) : error LNK2001: unresolved external symbol __imp__sprintf
                                          > mysqlclient.lib(ctype.obj) : error LNK2001: unresolved external symbol __imp__sprintf
                                          > mysqlclient.lib(my_init.obj) : error LNK2019: unresolved external symbol __imp__RegCloseKey@4 referenced in function _win32_have_tcpip
                                          > mysqlclient.lib(my_init.obj) : error LNK2019: unresolved external symbol __imp__RegEnumValueA@32 referenced in function _win_init_registry
                                          > mysqlclient.lib(my_init.obj) : error LNK2019: unresolved external symbol __imp__RegOpenKeyExA@20 referenced in function _win32_have_tcpip
                                          > mysqlclient.lib(my_default.obj) : error LNK2001: unresolved external symbol __imp____iob_func
                                          > mysqlclient.lib(log_client.obj) : error LNK2001: unresolved external symbol __imp____iob_func
                                          > mysqlclient.lib(my_init.obj) : error LNK2001: unresolved external symbol __imp____iob_func
                                          > mysqlclient.lib(my_winfile.obj) : error LNK2001: unresolved external symbol __imp____iob_func
                                          > mysqlclient.lib(my_mess.obj) : error LNK2001: unresolved external symbol __imp____iob_func
                                          > mysqlclient.lib(typelib.obj) : error LNK2001: unresolved external symbol __imp____iob_func
                                          > mysqlclient.lib(my_mess.obj) : error LNK2019: unresolved external symbol __imp__fprintf referenced in function _my_message_stderr
                                          > mysqlclient.lib(typelib.obj) : error LNK2001: unresolved external symbol __imp__fprintf
                                          > mysqlclient.lib(log_client.obj) : error LNK2001: unresolved external symbol __imp__fprintf
                                          > mysqlclient.lib(client_authentication.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" (__imp_?_Winerror_map@std@@YAPBDH@Z) referenced in function "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall std::_System_error_category::message(int)const " (?message@_System_error_category@std@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@H@Z)
                                          > mysqlclient.lib(sha2_password_common.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" (__imp_?_Winerror_map@std@@YAPBDH@Z)
                                          > mysqlclient.lib(my_default.obj) : error LNK2019: unresolved external symbol __imp__printf referenced in function _my_load_defaults
                                          > mysqlclient.lib(ssl.obj) : error LNK2019: unresolved external symbol __imp___snprintf referenced in function _ya_SSL_ASN1_TIME_to_string
                                          > mysqlclient.lib(log_client.obj) : error LNK2019: unresolved external symbol __imp__vfprintf referenced in function "void __cdecl error_log_vprint(enum error_log_level::type,char const *,char *)" (?error_log_vprint@@YAXW4type@error_log_level@@PBDPAD@Z)
                                          > mysqlclient.lib(common.obj) : error LNK2019: unresolved external symbol __imp__EqualSid@8 referenced in function "public: bool __thiscall Sid::operator==(class Sid const &)" (??8Sid@@QAE_NABV0@@Z)
                                          > mysqlclient.lib(common.obj) : error LNK2019: unresolved external symbol __imp__GetTokenInformation@20 referenced in function "public: __thiscall Sid::Sid(void *)" (??0Sid@@QAE@PAX@Z)
                                          > mysqlclient.lib(common.obj) : error LNK2019: unresolved external symbol __imp__IsValidSid@4 referenced in function "public: bool __thiscall Sid::is_valid(void)const " (?is_valid@Sid@@QBE_NXZ)
                                          > mysqlclient.lib(common.obj) : error LNK2019: unresolved external symbol __imp__LookupAccountNameW@28 referenced in function "public: __thiscall Sid::Sid(wchar_t const *)" (??0Sid@@QAE@PB_W@Z)
                                          > mysqlclient.lib(random.obj) : error LNK2019: unresolved external symbol __imp__CryptAcquireContextA@20 referenced in function "public: __thiscall TaoCrypt::OS_Seed::OS_Seed(void)" (??0OS_Seed@TaoCrypt@@QAE@XZ)
                                          > mysqlclient.lib(random.obj) : error LNK2019: unresolved external symbol __imp__CryptReleaseContext@8 referenced in function "public: __thiscall TaoCrypt::OS_Seed::~OS_Seed(void)" (??1OS_Seed@TaoCrypt@@QAE@XZ)
                                          > mysqlclient.lib(random.obj) : error LNK2019: unresolved external symbol __imp__CryptGenRandom@12 referenced in function "public: void __thiscall TaoCrypt::OS_Seed::GenerateSeed(unsigned char *,unsigned int)" (?GenerateSeed@OS_Seed@TaoCrypt@@QAEXPAEI@Z)
                                          > mysql.exe : fatal error LNK1120: 17 unresolved externals
                                          > NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\bin\HostX86\x86\link.EXE"' : return code '0x460'
                                          > Stop.
                                           => source failed verification.
                                          Trying source 6 (type inline) of library mysql ...
                                          + cd /d D:\QtBuild\Src\config.tests\mysql && D:\QtBuild\Src\qtbase\bin\qmake.exe "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += static warn_off console single_arch" "QMAKE_LIBDIR += C:\\MySQL\\mysql-5.7.23-win32\\lib C:\\OpenSSL\\openssl-1.0.2l-vs2017\\lib" "INCLUDEPATH += C:\\MySQL\\mysql-5.7.23-win32\\include C:\\OpenSSL\\openssl-1.0.2l-vs2017\\include" "LIBS += -lmysqlclient" D:/QtBuild/Src/config.tests/mysql
                                          + cd /d D:\QtBuild\Src\config.tests\mysql && set MAKEFLAGS=& nmake clean && set MAKEFLAGS=& nmake
                                          > Microsoft (R) Program Maintenance Utility Version 14.15.26726.0
                                          > Copyright (C) Microsoft Corporation.  All rights reserved.
                                          > 	del main.obj
                                          > 	del mysql.vc.pdb mysql.ilk mysql.idb
                                          > Microsoft (R) Program Maintenance Utility Version 14.15.26726.0
                                          > Copyright (C) Microsoft Corporation.  All rights reserved.
                                          > 	cl -c -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zi -MDd -W0 -EHsc /Fdmysql.vc.pdb -DUNICODE -D_UNICODE -DWIN32 -I. -IC:\MySQL\mysql-5.7.23-win32\include -IC:\OpenSSL\openssl-1.0.2l-vs2017\include -ID:\QtBuild\Src\qtbase\mkspecs\win32-msvc -Fo @C:\Users\cobra\AppData\Local\Temp\nmC3CF.tmp
                                          > main.cpp
                                          > 	link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:mysql.exe @C:\Users\cobra\AppData\Local\Temp\nmC632.tmp
                                          > LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
                                          > mysqlclient.lib(xml.obj) : error LNK2001: unresolved external symbol __imp__sprintf
                                          > mysqlclient.lib(libmysql.obj) : error LNK2001: unresolved external symbol __imp__sprintf
                                          > mysqlclient.lib(my_time.obj) : error LNK2001: unresolved external symbol __imp__sprintf
                                          > mysqlclient.lib(client.obj) : error LNK2001: unresolved external symbol __imp__sprintf
                                          > mysqlclient.lib(ctype.obj) : error LNK2001: unresolved external symbol __imp__sprintf
                                          > mysqlclient.lib(my_init.obj) : error LNK2019: unresolved external symbol __imp__RegCloseKey@4 referenced in function _win32_have_tcpip
                                          > mysqlclient.lib(my_init.obj) : error LNK2019: unresolved external symbol __imp__RegEnumValueA@32 referenced in function _win_init_registry
                                          > mysqlclient.lib(my_init.obj) : error LNK2019: unresolved external symbol __imp__RegOpenKeyExA@20 referenced in function _win32_have_tcpip
                                          > mysqlclient.lib(my_default.obj) : error LNK2001: unresolved external symbol __imp____iob_func
                                          > mysqlclient.lib(log_client.obj) : error LNK2001: unresolved external symbol __imp____iob_func
                                          > mysqlclient.lib(my_init.obj) : error LNK2001: unresolved external symbol __imp____iob_func
                                          > mysqlclient.lib(my_winfile.obj) : error LNK2001: unresolved external symbol __imp____iob_func
                                          > mysqlclient.lib(my_mess.obj) : error LNK2001: unresolved external symbol __imp____iob_func
                                          > mysqlclient.lib(typelib.obj) : error LNK2001: unresolved external symbol __imp____iob_func
                                          > mysqlclient.lib(my_mess.obj) : error LNK2019: unresolved external symbol __imp__fprintf referenced in function _my_message_stderr
                                          > mysqlclient.lib(typelib.obj) : error LNK2001: unresolved external symbol __imp__fprintf
                                          > mysqlclient.lib(log_client.obj) : error LNK2001: unresolved external symbol __imp__fprintf
                                          > mysqlclient.lib(client_authentication.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" (__imp_?_Winerror_map@std@@YAPBDH@Z) referenced in function "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall std::_System_error_category::message(int)const " (?message@_System_error_category@std@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@H@Z)
                                          > mysqlclient.lib(sha2_password_common.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" (__imp_?_Winerror_map@std@@YAPBDH@Z)
                                          > mysqlclient.lib(my_default.obj) : error LNK2019: unresolved external symbol __imp__printf referenced in function _my_load_defaults
                                          > mysqlclient.lib(ssl.obj) : error LNK2019: unresolved external symbol __imp___snprintf referenced in function _ya_SSL_ASN1_TIME_to_string
                                          > mysqlclient.lib(log_client.obj) : error LNK2019: unresolved external symbol __imp__vfprintf referenced in function "void __cdecl error_log_vprint(enum error_log_level::type,char const *,char *)" (?error_log_vprint@@YAXW4type@error_log_level@@PBDPAD@Z)
                                          > mysqlclient.lib(common.obj) : error LNK2019: unresolved external symbol __imp__EqualSid@8 referenced in function "public: bool __thiscall Sid::operator==(class Sid const &)" (??8Sid@@QAE_NABV0@@Z)
                                          > mysqlclient.lib(common.obj) : error LNK2019: unresolved external symbol __imp__GetTokenInformation@20 referenced in function "public: __thiscall Sid::Sid(void *)" (??0Sid@@QAE@PAX@Z)
                                          > mysqlclient.lib(common.obj) : error LNK2019: unresolved external symbol __imp__IsValidSid@4 referenced in function "public: bool __thiscall Sid::is_valid(void)const " (?is_valid@Sid@@QBE_NXZ)
                                          > mysqlclient.lib(common.obj) : error LNK2019: unresolved external symbol __imp__LookupAccountNameW@28 referenced in function "public: __thiscall Sid::Sid(wchar_t const *)" (??0Sid@@QAE@PB_W@Z)
                                          > mysqlclient.lib(random.obj) : error LNK2019: unresolved external symbol __imp__CryptAcquireContextA@20 referenced in function "public: __thiscall TaoCrypt::OS_Seed::OS_Seed(void)" (??0OS_Seed@TaoCrypt@@QAE@XZ)
                                          > mysqlclient.lib(random.obj) : error LNK2019: unresolved external symbol __imp__CryptReleaseContext@8 referenced in function "public: __thiscall TaoCrypt::OS_Seed::~OS_Seed(void)" (??1OS_Seed@TaoCrypt@@QAE@XZ)
                                          > mysqlclient.lib(random.obj) : error LNK2019: unresolved external symbol __imp__CryptGenRandom@12 referenced in function "public: void __thiscall TaoCrypt::OS_Seed::GenerateSeed(unsigned char *,unsigned int)" (?GenerateSeed@OS_Seed@TaoCrypt@@QAEXPAEI@Z)
                                          > mysql.exe : fatal error LNK1120: 17 unresolved externals
                                          > NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\bin\HostX86\x86\link.EXE"' : return code '0x460'
                                          > Stop.
                                           => source failed verification.
                                          test config.sqldrivers.libraries.mysql FAILED
                                          looking for library oci
                                          Trying source 0 (type inline) of library oci ...
                                          + cd /d D:\QtBuild\Src\config.tests\oci && D:\QtBuild\Src\qtbase\bin\qmake.exe "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += static warn_off console single_arch" "QMAKE_LIBDIR += C:\\MySQL\\mysql-5.7.23-win32\\lib C:\\OpenSSL\\openssl-1.0.2l-vs2017\\lib" "INCLUDEPATH += C:\\MySQL\\mysql-5.7.23-win32\\include C:\\OpenSSL\\openssl-1.0.2l-vs2017\\include" "LIBS += -loci" D:/QtBuild/Src/config.tests/oci
                                          + cd /d D:\QtBuild\Src\config.tests\oci && set MAKEFLAGS=& nmake
                                          > Microsoft (R) Program Maintenance Utility Version 14.15.26726.0
                                          > Copyright (C) Microsoft Corporation.  All rights reserved.
                                          > 	cl -c -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zi -MDd -W0 -EHsc /Fdoci.vc.pdb -DUNICODE -D_UNICODE -DWIN32 -I. -IC:\MySQL\mysql-5.7.23-win32\include -IC:\OpenSSL\openssl-1.0.2l-vs2017\include -ID:\QtBuild\Src\qtbase\mkspecs\win32-msvc -Fo @C:\Users\cobra\AppData\Local\Temp\nmC6EC.tmp
                                          > main.cpp
                                          > .\main.cpp(2): fatal error C1083: Cannot open include file: 'oci.h': No such file or directory
                                          > NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\bin\HostX86\x86\cl.EXE"' : return code '0x2'
                                          > Stop.
                                          

                                          Any ideas how to make it compile with the static library? Thanks.

                                          1 條回覆 最後回覆
                                          0

                                          • 登入

                                          • Login or register to search.
                                          • 第一個貼文
                                            最後的貼文
                                          0
                                          • 版面
                                          • 最新
                                          • 標籤
                                          • 熱門
                                          • 使用者
                                          • 群組
                                          • 搜尋
                                          • Get Qt Extensions
                                          • Unsolved