microsoft / vcpkg

C++ Library Manager for Windows, Linux, and MacOS
MIT License
23.19k stars 6.39k forks source link

libmysql static build missing openssl, zlib, zstd inside #38194

Closed silverqx closed 6 months ago

silverqx commented 6 months ago

libmysql static build doesn't contain symbols from these libraries, libmysql static library that is packaged with MySQL Server v8.0.36 installation has 74MB and libmysql static build in vcpkg has 48MB. @dg0yt

My port builds are failing because of this vcpkg install qtbase[core,sql-mysql]:x64-windows-static tinyorm[core,sql-mysql,tom-example]:x64-windows-static --recurse.

We have solved this in the past but there were a lot of changes in libmysql port since https://github.com/microsoft/vcpkg/commits/master/ports/libmysql

You can compare these static archives using eg.: lib /list .\mysqlclient.lib dumpbin /ARCHIVEMEMBERS .\mysqlclient.lib

Also, this command differs, vcpkg doesn't contain any exports and mysqlclient.lib from MySQL Server prints all openssl related symbols: dumpbin /exports .\mysqlclient.lib

I don't know where the problem is but if I do static build outside vcpkg it works.

Here is the failed log:

install-x64-windows-static-dbg-out.log ``` [106/109] C:\PROGRA~1\MIB055~1\2022\COMMUN~1\VC\Tools\MSVC\1439~1.335\bin\Hostx64\x64\cl.exe /TP -DNOMINMAX -DNTDDI_VERSION=NTDDI_WIN10_19H1 -DPROJECT_TINYORM -DQT_CORE_LIB -DQT_DISABLE_DEPRECATED_BEFORE=0x060000 -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_KEYWORDS -DQT_SQL_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -DTINYORM_DEBUG -DTINYORM_DEBUG_SQL -DTINYORM_DISABLE_ORM -DTINYORM_INLINE_CONSTANTS -DTINYORM_MSVC_RUNTIME_DYNAMIC=MSVC_RUNTIME_DYNAMIC-NOTFOUND -DTINYORM_STRICT_MODE=OFF -DTINYORM_TOM_EXAMPLE -DTINYORM_USING_PCH -DTINYTOM_CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDebug -DTINYTOM_DEBUG -DTINYTOM_MIGRATIONS_DIR=database/migrations -DTINYTOM_MODELS_DIR=database/seeders -DTINYTOM_SEEDERS_DIR=database/seeders -DUNICODE -DWIN32 -DWIN32_LEAN_AND_MEAN -DWIN64 -DWINVER=_WIN32_WINNT_WIN10 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_UNICODE -D_WIN32_IE=_WIN32_IE_IE110 -D_WIN32_WINNT=_WIN32_WINNT_WIN10 -D_WIN64 -IO:\Code\c_libs\vcpkg-tinyorm-port-qt6\buildtrees\tinyorm\src\v0.36.5-06b8c90c92.clean\include -IO:\Code\c_libs\vcpkg-tinyorm-port-qt6\buildtrees\tinyorm\src\v0.36.5-06b8c90c92.clean\tom\include -external:IO:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\include\Qt6\QtCore -external:IO:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\include\Qt6 -external:IO:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\share\Qt6\mkspecs\win32-msvc -external:IO:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\include\Qt6\QtSql -external:IO:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\include -external:W0 /nologo /DWIN32 /D_WINDOWS /W3 /utf-8 /GR /EHsc /MP /D_DEBUG /MTd /Z7 /Ob0 /Od /RTC1 -std:c++20 -MTd -Zc:__cplusplus -permissive- -utf-8 /permissive- /nologo /EHsc /utf-8 /Zc:__cplusplus /Zc:strictStrings /WX /W4 /sdl /guard:cf /bigobj /Zc:wchar_t,rvalueCast,inline /Zc:throwingNew,referenceBinding,ternary /external:anglebrackets /external:W0 /wd4702 /YuO:/Code/c_libs/vcpkg-tinyorm-port-qt6/buildtrees/tinyorm/x64-windows-static-dbg/CMakeFiles/TinyOrm.dir/cmake_pch.hxx /FpO:/Code/c_libs/vcpkg-tinyorm-port-qt6/buildtrees/tinyorm/x64-windows-static-dbg/CMakeFiles/TinyOrm.dir/./cmake_pch.cxx.pch /FIO:/Code/c_libs/vcpkg-tinyorm-port-qt6/buildtrees/tinyorm/x64-windows-static-dbg/CMakeFiles/TinyOrm.dir/cmake_pch.hxx /showIncludes /FoCMakeFiles\TinyOrm.dir\tom\src\tom\migrator.cpp.obj /FdCMakeFiles\TinyOrm.dir\TinyOrm.pdb /FS -c O:\Code\c_libs\vcpkg-tinyorm-port-qt6\buildtrees\tinyorm\src\v0.36.5-06b8c90c92.clean\tom\src\tom\migrator.cpp cl : Command line warning D9025 : overriding '/W3' with '/W4' [107/109] C:\WINDOWS\system32\cmd.exe /C "cd . && C:\PROGRA~1\MIB055~1\2022\COMMUN~1\VC\Tools\MSVC\1439~1.335\bin\Hostx64\x64\lib.exe /machine:x64 /nologo /out:TinyOrm0d.lib @CMakeFiles\TinyOrm.rsp && cd ." [108/109] C:\WINDOWS\system32\cmd.exe /C "cd . && "C:\Program Files\CMake\bin\cmake.exe" -E vs_link_exe --intdir=examples\tom\CMakeFiles\tom.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\mt.exe --manifests O:\Code\c_libs\vcpkg-tinyorm-port-qt6\buildtrees\tinyorm\src\v0.36.5-06b8c90c92.clean\tom\resources\tom.exe.manifest -- C:\PROGRA~1\MIB055~1\2022\COMMUN~1\VC\Tools\MSVC\1439~1.335\bin\Hostx64\x64\link.exe examples\tom\CMakeFiles\tom.dir\main.cpp.obj examples\tom\CMakeFiles\tom.dir\TinyOrm_generated\tmp\tom-Debug.rc.res /out:examples\tom\tom.exe /implib:examples\tom\tom.lib /pdb:examples\tom\tom.pdb /version:0.7 /machine:x64 /nologo /debug /INCREMENTAL /subsystem:console /guard:cf /WX O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\objects-Debug\QMYSQLDriverPlugin_init\QMYSQLDriverPlugin_init.cpp.obj O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\objects-Debug\QSQLiteDriverPlugin_init\QSQLiteDriverPlugin_init.cpp.obj TinyOrm0d.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\Qt6Sqld.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\qsqlmysqld.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\qsqlited.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\Qt6Sqld.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\qsqlmysqld.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\qsqlited.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\mysqlclient.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\Qt6Cored.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\zlibd.lib synchronization.lib mpr.lib userenv.lib advapi32.lib authz.lib kernel32.lib netapi32.lib ole32.lib shell32.lib user32.lib uuid.lib version.lib winmm.lib ws2_32.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\double-conversion.lib runtimeobject.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\pcre2-16d.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ." FAILED: examples/tom/tom.exe C:\WINDOWS\system32\cmd.exe /C "cd . && "C:\Program Files\CMake\bin\cmake.exe" -E vs_link_exe --intdir=examples\tom\CMakeFiles\tom.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\mt.exe --manifests O:\Code\c_libs\vcpkg-tinyorm-port-qt6\buildtrees\tinyorm\src\v0.36.5-06b8c90c92.clean\tom\resources\tom.exe.manifest -- C:\PROGRA~1\MIB055~1\2022\COMMUN~1\VC\Tools\MSVC\1439~1.335\bin\Hostx64\x64\link.exe examples\tom\CMakeFiles\tom.dir\main.cpp.obj examples\tom\CMakeFiles\tom.dir\TinyOrm_generated\tmp\tom-Debug.rc.res /out:examples\tom\tom.exe /implib:examples\tom\tom.lib /pdb:examples\tom\tom.pdb /version:0.7 /machine:x64 /nologo /debug /INCREMENTAL /subsystem:console /guard:cf /WX O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\objects-Debug\QMYSQLDriverPlugin_init\QMYSQLDriverPlugin_init.cpp.obj O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\objects-Debug\QSQLiteDriverPlugin_init\QSQLiteDriverPlugin_init.cpp.obj TinyOrm0d.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\Qt6Sqld.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\qsqlmysqld.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\qsqlited.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\Qt6Sqld.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\qsqlmysqld.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\qsqlited.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\mysqlclient.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\Qt6Cored.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\zlibd.lib synchronization.lib mpr.lib userenv.lib advapi32.lib authz.lib kernel32.lib netapi32.lib ole32.lib shell32.lib user32.lib uuid.lib version.lib winmm.lib ws2_32.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\double-conversion.lib runtimeobject.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\pcre2-16d.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ." LINK Pass 1: command "C:\PROGRA~1\MIB055~1\2022\COMMUN~1\VC\Tools\MSVC\1439~1.335\bin\Hostx64\x64\link.exe examples\tom\CMakeFiles\tom.dir\main.cpp.obj examples\tom\CMakeFiles\tom.dir\TinyOrm_generated\tmp\tom-Debug.rc.res /out:examples\tom\tom.exe /implib:examples\tom\tom.lib /pdb:examples\tom\tom.pdb /version:0.7 /machine:x64 /nologo /debug /INCREMENTAL /subsystem:console /guard:cf /WX O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\objects-Debug\QMYSQLDriverPlugin_init\QMYSQLDriverPlugin_init.cpp.obj O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\objects-Debug\QSQLiteDriverPlugin_init\QSQLiteDriverPlugin_init.cpp.obj TinyOrm0d.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\Qt6Sqld.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\qsqlmysqld.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\qsqlited.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\Qt6Sqld.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\qsqlmysqld.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\Qt6\plugins\sqldrivers\qsqlited.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\mysqlclient.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\Qt6Cored.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\zlibd.lib synchronization.lib mpr.lib userenv.lib advapi32.lib authz.lib kernel32.lib netapi32.lib ole32.lib shell32.lib user32.lib uuid.lib version.lib winmm.lib ws2_32.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\double-conversion.lib runtimeobject.lib O:\Code\c_libs\vcpkg-tinyorm-port-qt6\installed\x64-windows-static\debug\lib\pcre2-16d.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:examples\tom\CMakeFiles\tom.dir/intermediate.manifest examples\tom\CMakeFiles\tom.dir/manifest.res" failed (exit code 1120) with the following output: Creating library examples\tom\tom.lib and object examples\tom\tom.exp mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol BIO_new referenced in function mysql_get_ssl_session_data mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol BIO_free referenced in function mysql_get_ssl_session_data mysqlclient.lib(client_authentication.cc.obj) : error LNK2001: unresolved external symbol BIO_free mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol BIO_ctrl referenced in function mysql_get_ssl_session_data mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol BIO_s_mem referenced in function mysql_get_ssl_session_data mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol BIO_new_mem_buf referenced in function "struct ssl_session_st * __cdecl ssl_session_deserialize_from_data_ptr(struct MYSQL *,char *)" (?ssl_session_deserialize_from_data_ptr@@YAPEAUssl_session_st@@PEAUMYSQL@@PEAD@Z) mysqlclient.lib(client_authentication.cc.obj) : error LNK2001: unresolved external symbol BIO_new_mem_buf mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol X509_free referenced in function "int __cdecl ssl_verify_server_cert(struct Vio *,char const *,char const * *)" (?ssl_verify_server_cert@@YAHPEAUVio@@PEBDPEAPEBD@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2001: unresolved external symbol X509_free mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol ERR_error_string_n referenced in function "int __cdecl cli_establish_ssl(struct MYSQL *)" (?cli_establish_ssl@@YAHPEAUMYSQL@@@Z) mysqlclient.lib(my_openssl_fips.cc.obj) : error LNK2001: unresolved external symbol ERR_error_string_n mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol PEM_read_bio_SSL_SESSION referenced in function "struct ssl_session_st * __cdecl ssl_session_deserialize_from_data_ptr(struct MYSQL *,char *)" (?ssl_session_deserialize_from_data_ptr@@YAPEAUssl_session_st@@PEAUMYSQL@@PEAD@Z) mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol PEM_write_bio_SSL_SESSION referenced in function mysql_get_ssl_session_data mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol SSL_get_current_cipher referenced in function mysql_get_ssl_cipher mysqlclient.lib(viossl.cc.obj) : error LNK2001: unresolved external symbol SSL_get_current_cipher mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol SSL_CIPHER_get_name referenced in function mysql_get_ssl_cipher mysqlclient.lib(viossl.cc.obj) : error LNK2001: unresolved external symbol SSL_CIPHER_get_name mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol SSL_SESSION_is_resumable referenced in function mysql_get_ssl_session_data mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol SSL_SESSION_free referenced in function mysql_get_ssl_session_data mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol SSL_get1_peer_certificate referenced in function "int __cdecl ssl_verify_server_cert(struct Vio *,char const *,char const * *)" (?ssl_verify_server_cert@@YAHPEAUVio@@PEBDPEAPEBD@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2001: unresolved external symbol SSL_get1_peer_certificate mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol SSL_free referenced in function mysql_extension_free mysqlclient.lib(viossl.cc.obj) : error LNK2001: unresolved external symbol SSL_free mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol SSL_get1_session referenced in function mysql_get_ssl_session_data mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol SSL_get_verify_result referenced in function "int __cdecl ssl_verify_server_cert(struct Vio *,char const *,char const * *)" (?ssl_verify_server_cert@@YAHPEAUVio@@PEBDPEAPEBD@Z) mysqlclient.lib(client.cc.obj) : error LNK2019: unresolved external symbol SSL_session_reused referenced in function mysql_get_ssl_session_reused mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol OPENSSL_init_crypto referenced in function "void __cdecl ssl_start(void)" (?ssl_start@@YAXXZ) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol OSSL_PARAM_construct_utf8_string referenced in function "bool __cdecl `anonymous namespace'::set_dh(struct ssl_ctx_st *)" (?set_dh@?A0x74565ef8@@YA_NPEAUssl_ctx_st@@@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol OSSL_PARAM_construct_end referenced in function "bool __cdecl `anonymous namespace'::set_dh(struct ssl_ctx_st *)" (?set_dh@?A0x74565ef8@@YA_NPEAUssl_ctx_st@@@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_free referenced in function "bool __cdecl `anonymous namespace'::set_dh(struct ssl_ctx_st *)" (?set_dh@?A0x74565ef8@@YA_NPEAUssl_ctx_st@@@Z) mysqlclient.lib(client_authentication.cc.obj) : error LNK2001: unresolved external symbol EVP_PKEY_free mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_CTX_new_from_name referenced in function "bool __cdecl `anonymous namespace'::set_dh(struct ssl_ctx_st *)" (?set_dh@?A0x74565ef8@@YA_NPEAUssl_ctx_st@@@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_CTX_free referenced in function "bool __cdecl `anonymous namespace'::set_dh(struct ssl_ctx_st *)" (?set_dh@?A0x74565ef8@@YA_NPEAUssl_ctx_st@@@Z) mysqlclient.lib(client_authentication.cc.obj) : error LNK2001: unresolved external symbol EVP_PKEY_CTX_free mysqlclient.lib(my_kdf.cc.obj) : error LNK2001: unresolved external symbol EVP_PKEY_CTX_free mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_CTX_set_params referenced in function "bool __cdecl `anonymous namespace'::set_dh(struct ssl_ctx_st *)" (?set_dh@?A0x74565ef8@@YA_NPEAUssl_ctx_st@@@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_keygen_init referenced in function "bool __cdecl `anonymous namespace'::set_dh(struct ssl_ctx_st *)" (?set_dh@?A0x74565ef8@@YA_NPEAUssl_ctx_st@@@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_generate referenced in function "bool __cdecl `anonymous namespace'::set_dh(struct ssl_ctx_st *)" (?set_dh@?A0x74565ef8@@YA_NPEAUssl_ctx_st@@@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol ERR_get_error referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long,char const *)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD00000_NPEAW4enum_ssl_init_error@@00J0@Z) mysqlclient.lib(my_openssl_fips.cc.obj) : error LNK2001: unresolved external symbol ERR_get_error mysqlclient.lib(viossl.cc.obj) : error LNK2001: unresolved external symbol ERR_get_error mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol ERR_get_error_all referenced in function "void __cdecl report_errors(void)" (?report_errors@@YAXXZ) mysqlclient.lib(viossl.cc.obj) : error LNK2001: unresolved external symbol ERR_get_error_all mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol ERR_error_string referenced in function "void __cdecl report_errors(void)" (?report_errors@@YAXXZ) mysqlclient.lib(viossl.cc.obj) : error LNK2001: unresolved external symbol ERR_error_string mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol ERR_print_errors_fp referenced in function "int __cdecl vio_set_cert_stuff(struct ssl_ctx_st *,char const *,char const *,enum enum_ssl_init_error *)" (?vio_set_cert_stuff@@YAHPEAUssl_ctx_st@@PEBD1PEAW4enum_ssl_init_error@@@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol X509_STORE_set_flags referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long,char const *)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD00000_NPEAW4enum_ssl_init_error@@00J0@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol X509_STORE_load_locations referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long,char const *)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD00000_NPEAW4enum_ssl_init_error@@00J0@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set1_host referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long,char const *)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD00000_NPEAW4enum_ssl_init_error@@00J0@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set1_ip_asc referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long,char const *)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD00000_NPEAW4enum_ssl_init_error@@00J0@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol SSL_CTX_set_options referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long,char const *)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD00000_NPEAW4enum_ssl_init_error@@00J0@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol SSL_CTX_set0_tmp_dh_pkey referenced in function "bool __cdecl `anonymous namespace'::set_dh(struct ssl_ctx_st *)" (?set_dh@?A0x74565ef8@@YA_NPEAUssl_ctx_st@@@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol SSL_CTX_set_cipher_list referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long,char const *)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD00000_NPEAW4enum_ssl_init_error@@00J0@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol SSL_CTX_new referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long,char const *)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD00000_NPEAW4enum_ssl_init_error@@00J0@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol SSL_CTX_free referenced in function "void __cdecl free_vio_ssl_acceptor_fd(struct st_VioSSLFd *)" (?free_vio_ssl_acceptor_fd@@YAXPEAUst_VioSSLFd@@@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol SSL_CTX_get_cert_store referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long,char const *)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD00000_NPEAW4enum_ssl_init_error@@00J0@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol SSL_CTX_use_PrivateKey_file referenced in function "int __cdecl vio_set_cert_stuff(struct ssl_ctx_st *,char const *,char const *,enum enum_ssl_init_error *)" (?vio_set_cert_stuff@@YAHPEAUssl_ctx_st@@PEBD1PEAW4enum_ssl_init_error@@@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol SSL_CTX_use_certificate_chain_file referenced in function "int __cdecl vio_set_cert_stuff(struct ssl_ctx_st *,char const *,char const *,enum enum_ssl_init_error *)" (?vio_set_cert_stuff@@YAHPEAUssl_ctx_st@@PEBD1PEAW4enum_ssl_init_error@@@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol SSL_CTX_set_verify referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLConnectorFd(char const *,char const *,char const *,char const *,char const *,char const *,enum enum_ssl_init_error *,char const *,char const *,long,char const *)" (?new_VioSSLConnectorFd@@YAPEAUst_VioSSLFd@@PEBD00000PEAW4enum_ssl_init_error@@00J0@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol SSL_CTX_check_private_key referenced in function "int __cdecl vio_set_cert_stuff(struct ssl_ctx_st *,char const *,char const *,enum enum_ssl_init_error *)" (?vio_set_cert_stuff@@YAHPEAUssl_ctx_st@@PEBD1PEAW4enum_ssl_init_error@@@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol SSL_CTX_set_session_id_context referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLAcceptorFd(char const *,char const *,char const *,char const *,char const *,char const *,enum enum_ssl_init_error *,char const *,char const *,long)" (?new_VioSSLAcceptorFd@@YAPEAUst_VioSSLFd@@PEBD00000PEAW4enum_ssl_init_error@@00J@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol SSL_CTX_get0_param referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long,char const *)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD00000_NPEAW4enum_ssl_init_error@@00J0@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol SSL_CTX_ctrl referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLAcceptorFd(char const *,char const *,char const *,char const *,char const *,char const *,enum enum_ssl_init_error *,char const *,char const *,long)" (?new_VioSSLAcceptorFd@@YAPEAUst_VioSSLFd@@PEBD00000PEAW4enum_ssl_init_error@@00J@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol TLS_server_method referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long,char const *)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD00000_NPEAW4enum_ssl_init_error@@00J0@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol TLS_client_method referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long,char const *)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD00000_NPEAW4enum_ssl_init_error@@00J0@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol SSL_CTX_set_default_verify_paths referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long,char const *)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD00000_NPEAW4enum_ssl_init_error@@00J0@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol SSL_CTX_load_verify_locations referenced in function "struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long,char const *)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD00000_NPEAW4enum_ssl_init_error@@00J0@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol SSL_CTX_get_security_level referenced in function "bool __cdecl `anonymous namespace'::set_dh(struct ssl_ctx_st *)" (?set_dh@?A0x74565ef8@@YA_NPEAUssl_ctx_st@@@Z) mysqlclient.lib(viosslfactories.cc.obj) : error LNK2019: unresolved external symbol OPENSSL_init_ssl referenced in function "void __cdecl ssl_start(void)" (?ssl_start@@YAXXZ) mysqlclient.lib(client_authentication.cc.obj) : error LNK2019: unresolved external symbol ERR_clear_error referenced in function "int __cdecl sha256_password_auth_client(struct MYSQL_PLUGIN_VIO *,struct MYSQL *)" (?sha256_password_auth_client@@YAHPEAUMYSQL_PLUGIN_VIO@@PEAUMYSQL@@@Z) mysqlclient.lib(my_openssl_fips.cc.obj) : error LNK2001: unresolved external symbol ERR_clear_error mysqlclient.lib(viossl.cc.obj) : error LNK2001: unresolved external symbol ERR_clear_error mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2001: unresolved external symbol ERR_clear_error mysqlclient.lib(client_authentication.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_get_size referenced in function "int __cdecl sha256_password_auth_client(struct MYSQL_PLUGIN_VIO *,struct MYSQL *)" (?sha256_password_auth_client@@YAHPEAUMYSQL_PLUGIN_VIO@@PEAUMYSQL@@@Z) mysqlclient.lib(client_authentication.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_CTX_new referenced in function "enum net_async_status __cdecl caching_sha2_password_auth_client_nonblocking(struct MYSQL_PLUGIN_VIO *,struct MYSQL *,int *)" (?caching_sha2_password_auth_client_nonblocking@@YA?AW4net_async_status@@PEAUMYSQL_PLUGIN_VIO@@PEAUMYSQL@@PEAH@Z) mysqlclient.lib(client_authentication.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_encrypt_init referenced in function "enum net_async_status __cdecl caching_sha2_password_auth_client_nonblocking(struct MYSQL_PLUGIN_VIO *,struct MYSQL *,int *)" (?caching_sha2_password_auth_client_nonblocking@@YA?AW4net_async_status@@PEAUMYSQL_PLUGIN_VIO@@PEAUMYSQL@@PEAH@Z) mysqlclient.lib(client_authentication.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_encrypt referenced in function "enum net_async_status __cdecl caching_sha2_password_auth_client_nonblocking(struct MYSQL_PLUGIN_VIO *,struct MYSQL *,int *)" (?caching_sha2_password_auth_client_nonblocking@@YA?AW4net_async_status@@PEAUMYSQL_PLUGIN_VIO@@PEAUMYSQL@@PEAH@Z) mysqlclient.lib(client_authentication.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_CTX_set_rsa_padding referenced in function "enum net_async_status __cdecl caching_sha2_password_auth_client_nonblocking(struct MYSQL_PLUGIN_VIO *,struct MYSQL *,int *)" (?caching_sha2_password_auth_client_nonblocking@@YA?AW4net_async_status@@PEAUMYSQL_PLUGIN_VIO@@PEAUMYSQL@@PEAH@Z) mysqlclient.lib(client_authentication.cc.obj) : error LNK2019: unresolved external symbol PEM_read_bio_PUBKEY referenced in function "int __cdecl sha256_password_auth_client(struct MYSQL_PLUGIN_VIO *,struct MYSQL *)" (?sha256_password_auth_client@@YAHPEAUMYSQL_PLUGIN_VIO@@PEAUMYSQL@@@Z) mysqlclient.lib(client_authentication.cc.obj) : error LNK2019: unresolved external symbol PEM_read_PUBKEY referenced in function "struct evp_pkey_st * __cdecl rsa_init(struct MYSQL *)" (?rsa_init@@YAPEAUevp_pkey_st@@PEAUMYSQL@@@Z) mysqlclient.lib(my_compress.cc.obj) : error LNK2019: unresolved external symbol ZSTD_compressBound referenced in function "unsigned char * __cdecl zstd_compress_alloc(struct mysql_zstd_compress_context *,unsigned char const *,unsigned __int64 *,unsigned __int64 *)" (?zstd_compress_alloc@@YAPEAEPEAUmysql_zstd_compress_context@@PEBEPEA_K2@Z) mysqlclient.lib(my_compress.cc.obj) : error LNK2019: unresolved external symbol ZSTD_isError referenced in function "unsigned char * __cdecl zstd_compress_alloc(struct mysql_zstd_compress_context *,unsigned char const *,unsigned __int64 *,unsigned __int64 *)" (?zstd_compress_alloc@@YAPEAEPEAUmysql_zstd_compress_context@@PEBEPEA_K2@Z) mysqlclient.lib(my_compress.cc.obj) : error LNK2019: unresolved external symbol ZSTD_getErrorName referenced in function "unsigned char * __cdecl zstd_compress_alloc(struct mysql_zstd_compress_context *,unsigned char const *,unsigned __int64 *,unsigned __int64 *)" (?zstd_compress_alloc@@YAPEAEPEAUmysql_zstd_compress_context@@PEBEPEA_K2@Z) mysqlclient.lib(my_compress.cc.obj) : error LNK2019: unresolved external symbol ZSTD_createCCtx referenced in function "unsigned char * __cdecl zstd_compress_alloc(struct mysql_zstd_compress_context *,unsigned char const *,unsigned __int64 *,unsigned __int64 *)" (?zstd_compress_alloc@@YAPEAEPEAUmysql_zstd_compress_context@@PEBEPEA_K2@Z) mysqlclient.lib(my_compress.cc.obj) : error LNK2019: unresolved external symbol ZSTD_freeCCtx referenced in function "void __cdecl mysql_compress_context_deinit(struct mysql_compress_context *)" (?mysql_compress_context_deinit@@YAXPEAUmysql_compress_context@@@Z) mysqlclient.lib(my_compress.cc.obj) : error LNK2019: unresolved external symbol ZSTD_compressCCtx referenced in function "unsigned char * __cdecl zstd_compress_alloc(struct mysql_zstd_compress_context *,unsigned char const *,unsigned __int64 *,unsigned __int64 *)" (?zstd_compress_alloc@@YAPEAEPEAUmysql_zstd_compress_context@@PEBEPEA_K2@Z) mysqlclient.lib(my_compress.cc.obj) : error LNK2019: unresolved external symbol ZSTD_createDCtx referenced in function "bool __cdecl zstd_uncompress(struct mysql_zstd_compress_context *,unsigned char *,unsigned __int64,unsigned __int64 *)" (?zstd_uncompress@@YA_NPEAUmysql_zstd_compress_context@@PEAE_KPEA_K@Z) mysqlclient.lib(my_compress.cc.obj) : error LNK2019: unresolved external symbol ZSTD_freeDCtx referenced in function "void __cdecl mysql_compress_context_deinit(struct mysql_compress_context *)" (?mysql_compress_context_deinit@@YAXPEAUmysql_compress_context@@@Z) mysqlclient.lib(my_compress.cc.obj) : error LNK2019: unresolved external symbol ZSTD_decompressDCtx referenced in function "bool __cdecl zstd_uncompress(struct mysql_zstd_compress_context *,unsigned char *,unsigned __int64,unsigned __int64 *)" (?zstd_uncompress@@YA_NPEAUmysql_zstd_compress_context@@PEAE_KPEA_K@Z) mysqlclient.lib(my_openssl_fips.cc.obj) : error LNK2019: unresolved external symbol EVP_default_properties_is_fips_enabled referenced in function "int __cdecl get_fips_mode(void)" (?get_fips_mode@@YAHXZ) mysqlclient.lib(my_openssl_fips.cc.obj) : error LNK2019: unresolved external symbol EVP_default_properties_enable_fips referenced in function "int __cdecl set_fips_mode_inner(int)" (?set_fips_mode_inner@@YAHH@Z) mysqlclient.lib(my_openssl_fips.cc.obj) : error LNK2019: unresolved external symbol OSSL_PROVIDER_load referenced in function "int __cdecl set_fips_mode_inner(int)" (?set_fips_mode_inner@@YAHH@Z) mysqlclient.lib(my_openssl_fips.cc.obj) : error LNK2019: unresolved external symbol OSSL_PROVIDER_unload referenced in function "void __cdecl fips_deinit(void)" (?fips_deinit@@YAXXZ) mysqlclient.lib(my_openssl_fips.cc.obj) : error LNK2019: unresolved external symbol OSSL_PROVIDER_available referenced in function "int __cdecl get_fips_mode(void)" (?get_fips_mode@@YAHXZ) mysqlclient.lib(viosocket.cc.obj) : error LNK2019: unresolved external symbol SSL_pending referenced in function "bool __cdecl vio_is_connected(struct Vio *)" (?vio_is_connected@@YA_NPEAUVio@@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2001: unresolved external symbol SSL_pending mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol OPENSSL_sk_num referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol OPENSSL_sk_value referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol ERR_peek_error referenced in function "unsigned __int64 __cdecl vio_ssl_read(struct Vio *,unsigned char *,unsigned __int64)" (?vio_ssl_read@@YA_KPEAUVio@@PEAE_K@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol X509_NAME_oneline referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol X509_get_issuer_name referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol X509_get_subject_name referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_set_options referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_clear referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_get_fd referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_get_shared_ciphers referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_set_fd referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_SESSION_set_timeout referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_SESSION_get_id referenced in function "void __cdecl print_ssl_session_id(struct ssl_session_st *,char const *)" (?print_ssl_session_id@@YAXPEAUssl_session_st@@PEBD@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_set_session referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_new referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_accept referenced in function "int __cdecl sslaccept(struct st_VioSSLFd *,struct Vio *,long,unsigned long *)" (?sslaccept@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAK@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_connect referenced in function "int __cdecl sslconnect(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,unsigned long *,struct ssl_st * *)" (?sslconnect@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@PEAKPEAPEAUssl_st@@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_read referenced in function "unsigned __int64 __cdecl vio_ssl_read(struct Vio *,unsigned char *,unsigned __int64)" (?vio_ssl_read@@YA_KPEAUVio@@PEAE_K@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_write referenced in function "unsigned __int64 __cdecl vio_ssl_write(struct Vio *,unsigned char const *,unsigned __int64)" (?vio_ssl_write@@YA_KPEAUVio@@PEBE_K@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_get_error referenced in function "int __cdecl vio_ssl_shutdown(struct Vio *)" (?vio_ssl_shutdown@@YAHPEAUVio@@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_shutdown referenced in function "int __cdecl vio_ssl_shutdown(struct Vio *)" (?vio_ssl_shutdown@@YAHPEAUVio@@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_set_quiet_shutdown referenced in function "int __cdecl vio_ssl_shutdown(struct Vio *)" (?vio_ssl_shutdown@@YAHPEAUVio@@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_get_session referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_COMP_get0_name referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_COMP_get_id referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(viossl.cc.obj) : error LNK2019: unresolved external symbol SSL_COMP_get_compression_methods referenced in function "int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,struct ssl_session_st *,int (__cdecl*)(struct ssl_st *),unsigned long *,struct ssl_st * *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAUssl_session_st@@P6AHPEAUssl_st@@@ZPEAKPEAPEAU4@@Z) mysqlclient.lib(crypt_genhash_impl.cc.obj) : error LNK2019: unresolved external symbol EVP_MD_CTX_new referenced in function "void __cdecl DIGESTCreate(struct evp_md_ctx_st * *)" (?DIGESTCreate@@YAXPEAPEAUevp_md_ctx_st@@@Z) mysqlclient.lib(sha2_password_common.cc.obj) : error LNK2001: unresolved external symbol EVP_MD_CTX_new mysqlclient.lib(my_sha1.cc.obj) : error LNK2001: unresolved external symbol EVP_MD_CTX_new mysqlclient.lib(crypt_genhash_impl.cc.obj) : error LNK2019: unresolved external symbol EVP_MD_CTX_free referenced in function "void __cdecl DIGESTDestroy(struct evp_md_ctx_st * *)" (?DIGESTDestroy@@YAXPEAPEAUevp_md_ctx_st@@@Z) mysqlclient.lib(sha2_password_common.cc.obj) : error LNK2001: unresolved external symbol EVP_MD_CTX_free mysqlclient.lib(my_sha1.cc.obj) : error LNK2001: unresolved external symbol EVP_MD_CTX_free mysqlclient.lib(crypt_genhash_impl.cc.obj) : error LNK2019: unresolved external symbol EVP_DigestInit_ex referenced in function "void __cdecl DIGESTInit(struct evp_md_ctx_st *)" (?DIGESTInit@@YAXPEAUevp_md_ctx_st@@@Z) mysqlclient.lib(sha2_password_common.cc.obj) : error LNK2001: unresolved external symbol EVP_DigestInit_ex mysqlclient.lib(my_sha1.cc.obj) : error LNK2001: unresolved external symbol EVP_DigestInit_ex mysqlclient.lib(crypt_genhash_impl.cc.obj) : error LNK2019: unresolved external symbol EVP_DigestUpdate referenced in function "void __cdecl DIGESTUpdate(struct evp_md_ctx_st *,void const *,int)" (?DIGESTUpdate@@YAXPEAUevp_md_ctx_st@@PEBXH@Z) mysqlclient.lib(sha2_password_common.cc.obj) : error LNK2001: unresolved external symbol EVP_DigestUpdate mysqlclient.lib(my_sha1.cc.obj) : error LNK2001: unresolved external symbol EVP_DigestUpdate mysqlclient.lib(crypt_genhash_impl.cc.obj) : error LNK2019: unresolved external symbol EVP_DigestFinal_ex referenced in function "void __cdecl DIGESTFinal(void *,struct evp_md_ctx_st *)" (?DIGESTFinal@@YAXPEAXPEAUevp_md_ctx_st@@@Z) mysqlclient.lib(sha2_password_common.cc.obj) : error LNK2001: unresolved external symbol EVP_DigestFinal_ex mysqlclient.lib(my_sha1.cc.obj) : error LNK2001: unresolved external symbol EVP_DigestFinal_ex mysqlclient.lib(crypt_genhash_impl.cc.obj) : error LNK2019: unresolved external symbol EVP_sha256 referenced in function "void __cdecl DIGESTInit(struct evp_md_ctx_st *)" (?DIGESTInit@@YAXPEAUevp_md_ctx_st@@@Z) mysqlclient.lib(sha2_password_common.cc.obj) : error LNK2001: unresolved external symbol EVP_sha256 mysqlclient.lib(crypt_genhash_impl.cc.obj) : error LNK2019: unresolved external symbol RAND_bytes referenced in function "void __cdecl generate_user_salt(char *,int)" (?generate_user_salt@@YAXPEADH@Z) mysqlclient.lib(sha2_password_common.cc.obj) : error LNK2019: unresolved external symbol EVP_MD_CTX_reset referenced in function "public: virtual bool __cdecl sha2_password::SHA256_digest::retrieve_digest(unsigned char *,unsigned int)" (?retrieve_digest@SHA256_digest@sha2_password@@UEAA_NPEAEI@Z) mysqlclient.lib(my_sha1.cc.obj) : error LNK2019: unresolved external symbol EVP_sha1 referenced in function "void __cdecl compute_sha1_hash(unsigned char *,char const *,unsigned __int64)" (?compute_sha1_hash@@YAXPEAEPEBD_K@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol BIO_new_bio_pair referenced in function "int __cdecl dummy_function_needed_by_xplugin(void)" (?dummy_function_needed_by_xplugin@@YAHXZ) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_CIPHER_get_block_size referenced in function "__int64 __cdecl my_aes_get_size(unsigned int,enum my_aes_opmode)" (?my_aes_get_size@@YA_JIW4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_CIPHER_get_iv_length referenced in function "int __cdecl my_aes_encrypt(unsigned char const *,unsigned int,unsigned char *,unsigned char const *,unsigned int,enum my_aes_opmode,unsigned char const *,bool,class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > *)" (?my_aes_encrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_NPEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_EncryptInit referenced in function "int __cdecl my_aes_encrypt(unsigned char const *,unsigned int,unsigned char *,unsigned char const *,unsigned int,enum my_aes_opmode,unsigned char const *,bool,class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > *)" (?my_aes_encrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_NPEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_EncryptUpdate referenced in function "int __cdecl my_aes_encrypt(unsigned char const *,unsigned int,unsigned char *,unsigned char const *,unsigned int,enum my_aes_opmode,unsigned char const *,bool,class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > *)" (?my_aes_encrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_NPEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_EncryptFinal referenced in function "int __cdecl my_aes_encrypt(unsigned char const *,unsigned int,unsigned char *,unsigned char const *,unsigned int,enum my_aes_opmode,unsigned char const *,bool,class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > *)" (?my_aes_encrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_NPEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_DecryptInit referenced in function "int __cdecl my_aes_decrypt(unsigned char const *,unsigned int,unsigned char *,unsigned char const *,unsigned int,enum my_aes_opmode,unsigned char const *,bool,class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > *)" (?my_aes_decrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_NPEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_DecryptUpdate referenced in function "int __cdecl my_aes_decrypt(unsigned char const *,unsigned int,unsigned char *,unsigned char const *,unsigned int,enum my_aes_opmode,unsigned char const *,bool,class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > *)" (?my_aes_decrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_NPEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_DecryptFinal_ex referenced in function "int __cdecl my_aes_decrypt(unsigned char const *,unsigned int,unsigned char *,unsigned char const *,unsigned int,enum my_aes_opmode,unsigned char const *,bool,class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > *)" (?my_aes_decrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_NPEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_CIPHER_CTX_new referenced in function "int __cdecl my_aes_encrypt(unsigned char const *,unsigned int,unsigned char *,unsigned char const *,unsigned int,enum my_aes_opmode,unsigned char const *,bool,class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > *)" (?my_aes_encrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_NPEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_CIPHER_CTX_free referenced in function "int __cdecl my_aes_encrypt(unsigned char const *,unsigned int,unsigned char *,unsigned char const *,unsigned int,enum my_aes_opmode,unsigned char const *,bool,class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > *)" (?my_aes_encrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_NPEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_CIPHER_CTX_set_padding referenced in function "int __cdecl my_aes_encrypt(unsigned char const *,unsigned int,unsigned char *,unsigned char const *,unsigned int,enum my_aes_opmode,unsigned char const *,bool,class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > *)" (?my_aes_encrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_NPEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_128_ecb referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_128_cbc referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_128_cfb1 referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_128_cfb8 referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_128_cfb128 referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_128_ofb referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_192_ecb referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_192_cbc referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_192_cfb1 referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_192_cfb8 referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_192_cfb128 referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_192_ofb referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_256_ecb referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_256_cbc referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_256_cfb1 referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_256_cfb8 referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_256_cfb128 referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_aes_openssl.cc.obj) : error LNK2019: unresolved external symbol EVP_aes_256_ofb referenced in function "struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z) mysqlclient.lib(my_kdf.cc.obj) : error LNK2019: unresolved external symbol EVP_sha512 referenced in function "public: virtual int __cdecl Key_hkdf_function::derive_key(unsigned char const *,unsigned int,unsigned char *,unsigned int)" (?derive_key@Key_hkdf_function@@UEAAHPEBEIPEAEI@Z) mysqlclient.lib(my_kdf.cc.obj) : error LNK2019: unresolved external symbol PKCS5_PBKDF2_HMAC referenced in function "public: virtual int __cdecl Key_pbkdf2_hmac_function::derive_key(unsigned char const *,unsigned int,unsigned char *,unsigned int)" (?derive_key@Key_pbkdf2_hmac_function@@UEAAHPEBEIPEAEI@Z) mysqlclient.lib(my_kdf.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_CTX_new_id referenced in function "public: virtual int __cdecl Key_hkdf_function::derive_key(unsigned char const *,unsigned int,unsigned char *,unsigned int)" (?derive_key@Key_hkdf_function@@UEAAHPEBEIPEAEI@Z) mysqlclient.lib(my_kdf.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_derive_init referenced in function "public: virtual int __cdecl Key_hkdf_function::derive_key(unsigned char const *,unsigned int,unsigned char *,unsigned int)" (?derive_key@Key_hkdf_function@@UEAAHPEBEIPEAEI@Z) mysqlclient.lib(my_kdf.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_derive referenced in function "public: virtual int __cdecl Key_hkdf_function::derive_key(unsigned char const *,unsigned int,unsigned char *,unsigned int)" (?derive_key@Key_hkdf_function@@UEAAHPEBEIPEAEI@Z) mysqlclient.lib(my_kdf.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_CTX_set_hkdf_md referenced in function "public: virtual int __cdecl Key_hkdf_function::derive_key(unsigned char const *,unsigned int,unsigned char *,unsigned int)" (?derive_key@Key_hkdf_function@@UEAAHPEBEIPEAEI@Z) mysqlclient.lib(my_kdf.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_CTX_set1_hkdf_salt referenced in function "public: virtual int __cdecl Key_hkdf_function::derive_key(unsigned char const *,unsigned int,unsigned char *,unsigned int)" (?derive_key@Key_hkdf_function@@UEAAHPEBEIPEAEI@Z) mysqlclient.lib(my_kdf.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_CTX_set1_hkdf_key referenced in function "public: virtual int __cdecl Key_hkdf_function::derive_key(unsigned char const *,unsigned int,unsigned char *,unsigned int)" (?derive_key@Key_hkdf_function@@UEAAHPEBEIPEAEI@Z) mysqlclient.lib(my_kdf.cc.obj) : error LNK2019: unresolved external symbol EVP_PKEY_CTX_add1_hkdf_info referenced in function "public: virtual int __cdecl Key_hkdf_function::derive_key(unsigned char const *,unsigned int,unsigned char *,unsigned int)" (?derive_key@Key_hkdf_function@@UEAAHPEBEIPEAEI@Z) examples\tom\tom.exe : fatal error LNK1120: 151 unresolved externals ninja: build stopped: subcommand failed. ```
silverqx commented 6 months ago

Also important is that everything builds but it only fails during executable linking, it's not so important because if there is a problem like this it always fails during exe linking. Eg. dll or static lib can compile w/o problems but if you try exe that really calls this APIs it fails.

dg0yt commented 6 months ago

It is not a bug, it is a feature, isn't it?

vcpkg wants dependencies de-vendored. There shall be no copy of the openssl lib in the mysql lib. Linking to openssl is a transitive usage requirement of linking to mysql with static linkage. And to make this work (without msbuild auto-linking every installed lib), a lot of attention goes in providing exported usage via pkg-config, CMake config, and/or CMake Find module wrappers. Here, your best choice for CMake is: https://github.com/microsoft/vcpkg/blob/ad3bae57455a3c3ce528fcd47d8e8027d0498add/ports/libmysql/usage#L1-L4

dg0yt commented 6 months ago

libmysql static build missing openssl, zlib, zstd inside

No, it is by design.

silverqx commented 6 months ago

Thx for asap reply I see what you are writing, that means I need to link against the unofficial-libmysql package inside vcpkg? If so then it's a feature. 😎

Currently I'm using this https://github.com/silverqx/TinyORM/blob/main/cmake/Modules/FindMySQL.cmake CMake module for this.

silverqx commented 6 months ago

It's really nice if I think about it, it can make executables even 50% smaller in many cases, when they depend on lot of libraries.

silverqx commented 6 months ago

Ok, I get it I always need to use even CMake find pacakges/modules inside vcpkg if it provides them explicitly. I create port update for this in separate issue, thx @dg0yt for explanation.

dg0yt commented 6 months ago

That's the dilemma of the old-school find method: It works okay for the immediate binaries (shared libs), but not very well for transitive usage requirements, in particular when the requirements can vary by platform or configuration options. (For this purpose, it doesn't matter much if CMake packages come dressed as Config or as Find module. The difference is the exported config inside, i.e. being directly generated from the configuration at build time.)

De-vendoring isn't only about size, but also ensures consistent definitions/ABI over all components.

silverqx commented 6 months ago

It's much better to define these dependencies through transitive usage requirements for static linking and then generate the dependency requirements during package config export, this way you can control these requirements by platform.

Generally, I'm using it this way too, it's much better than merging all dependencies inside the static archive, especially from the vcpkg view, it has a lot of benefits doing it this way.

By the way, I quickly tried linking against the unofficial-libmysql and it works great, w/o failures.

silverqx commented 6 months ago

I took a closer look at it today and I'm confused.

tinyorm library doesn't depend on libmysql and tom executable (it's in tools) doesn't depend on libmysql as well. tinyorm depends on QtSql plugin and it depends on loadable qsql_mysql plugin (shared library loadable at runtime on win32 LoadLibrary()). QtSql defines the qsql_mysql as a PRIVATE dependency (this is important), and this qsql_mysql plugin depends on libmysql (PRIVATE).

So the runtime dependency graph looks like:

tinyormd.dll
├── QtCored.dll
└── QtSqld.dll
    └── qsqlmysqld.dll (PRIVATE)
        └── libmysql.dll (PRIVATE)

tom.exe
├── tinyorm.dll
│   ├── QtCored.dll
│   └── QtSqld.dll
│       └── qsqlmysqld.dll (PRIVATE)
│           └── libmysql.dll (PRIVATE)
├── QtCored.dll
└── QtSqld.dll
    └── qsqlmysqld.dll (PRIVATE)
        └── libmysql.dll (PRIVATE)

I don't even have in my cmake project:

find_package(MySQL REQUIRED)
target_link_libraries(TinyOrm/tom PRIVATE MySQL::MySQL)

But is understandable why the static build throws undefined reference errors for mysqlclient library (as we discussed above) (for OpenSSL and zstd symbols).

Where should I put?:

find_package(unofficial-libmysql REQUIRED)
target_link_libraries(<xyz> PRIVATE unofficial::libmysql::libmysql)

This libmysql dependency should be passed down using transitive usage requirements for static builds, right? Do you see why I'm confused?

silverqx commented 6 months ago

I think a problem can be here:

packages\qtbase_x64-windows-static\share\Qt6Sql\Qt6QMYSQLDriverPluginTargets.cmake

set_target_properties(Qt6::QMYSQLDriverPlugin PROPERTIES
  COMPATIBLE_INTERFACE_STRING "QT_MAJOR_VERSION"
  INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:MySQL::MySQL>;\$<LINK_ONLY:Qt6::Core>;\$<LINK_ONLY:Qt6::CorePrivate>;\$<LINK_ONLY:Qt6::SqlPrivate>;\$<LINK_ONLY:Qt6::PlatformPluginInternal>"
  INTERFACE_QT_MAJOR_VERSION "6"
  QT_DEFAULT_PLUGIN "1"
  QT_MODULE "Sql"
  QT_PLUGIN_CLASS_NAME "QMYSQLDriverPlugin"
  QT_PLUGIN_TYPE "sqldrivers"
  _qt_package_version "6.6.1"
)

This is a package config file generated by QtSql6 for qsql_mysql plugin (driver), it uses FindMySQL.cmake module instead of unofficial-libmysql from vcpkg.

As you can see this package config file was generated for qtbase:x64-windows-static.

dg0yt commented 6 months ago

Then it must be patched in that port. It is probably not covered by vcpkg CI until some port builds an executable with static linkage.

silverqx commented 6 months ago

Ok, a few minutes ago I figured it out, I apologize because the fault was on my side. It works correctly, I don't know where the problem was (I think in me 🙃) but I just invoked vcpkg install and it works. I hope you didn't waste your time and didn't start investigating it. I think I defined a wrong target name for target_link_libraries(<wrong_name>) or something.

dg0yt commented 6 months ago

Don't worry. I enjoy the positive direction.