AW: [odb-users] Linker issues during compilation with odb-mysqlLib.

Jannis Röglin jannis.roeglin at psi-technics.com
Wed Feb 23 08:49:49 EST 2022


Hallo Boris,

I finished the build. I added also z.lib;ssl.lib;crypto.lib
Thanks for your support.

-----Ursprüngliche Nachricht-----
Von: Jannis Röglin 
Gesendet: Mittwoch, 23. Februar 2022 14:45
An: odb-users at codesynthesis.com
Betreff: AW: [odb-users] Linker issues during compilation with odb-mysqlLib.

Hallo Boris,

thank you for your support. I tried your recommendation, but I get more errors for missing external symbols. I tried the follow string in Visual Studio for the linker input " %(AdditionalDependencies);C:\dependencies\odb\debug-64\lib\odb-mysql.lib;C:\dependencies\odb\debug-64\lib\odb.lib;C:\dependencies\odb\debug-64\lib\mysqlclient.lib; ". Now the missing symbols came from mysqlclient. Here is the error output:

1>mysqlclient.lib(client.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "ERR_error_string_n" in Funktion ""int __cdecl cli_establish_ssl(struct MYSQL *)" (?cli_establish_ssl@@YAHPEAUMYSQL@@@Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "ERR_error_string_n".
1>mysqlclient.lib(client.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "X509_free" in Funktion ""int __cdecl ssl_verify_server_cert(struct Vio *,char const *,char const * *)" (?ssl_verify_server_cert@@YAHPEAUVio@@PEBDPEAPEBD at Z)".
1>mysqlclient.lib(client.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_CTX_free" in Funktion ""void __cdecl mysql_ssl_free(struct MYSQL *)" (?mysql_ssl_free@@YAXPEAUMYSQL@@@Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "SSL_CTX_free".
1>mysqlclient.lib(client.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_get_current_cipher" in Funktion "mysql_get_ssl_cipher".
1>mysqlclient.lib(client.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_CIPHER_get_name" in Funktion "mysql_get_ssl_cipher".
1>mysqlclient.lib(client.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_get_peer_certificate" in Funktion ""int __cdecl ssl_verify_server_cert(struct Vio *,char const *,char const * *)" (?ssl_verify_server_cert@@YAHPEAUVio@@PEBDPEAPEBD at Z)".
1>mysqlclient.lib(client.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_get_verify_result" in Funktion ""int __cdecl ssl_verify_server_cert(struct Vio *,char const *,char const * *)" (?ssl_verify_server_cert@@YAHPEAUVio@@PEBDPEAPEBD at Z)".
1>mysqlclient.lib(client.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "X509_check_host" in Funktion ""int __cdecl ssl_verify_server_cert(struct Vio *,char const *,char const * *)" (?ssl_verify_server_cert@@YAHPEAUVio@@PEBDPEAPEBD at Z)".
1>mysqlclient.lib(client.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "X509_check_ip_asc" in Funktion ""int __cdecl ssl_verify_server_cert(struct Vio *,char const *,char const * *)" (?ssl_verify_server_cert@@YAHPEAUVio@@PEBDPEAPEBD at Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "FIPS_mode" in Funktion ""int __cdecl set_fips_mode(unsigned int,char *)" (?set_fips_mode@@YAHIPEAD at Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "FIPS_mode_set" in Funktion ""int __cdecl set_fips_mode(unsigned int,char *)" (?set_fips_mode@@YAHIPEAD at Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "OPENSSL_init_crypto" in Funktion ""void __cdecl ssl_start(void)" (?ssl_start@@YAXXZ)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "ERR_get_error" in Funktion ""int __cdecl set_fips_mode(unsigned int,char *)" (?set_fips_mode@@YAHIPEAD at Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "ERR_get_error".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "ERR_get_error_line_data" in Funktion ""void __cdecl report_errors(void)" (?report_errors@@YAXXZ)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "BN_bin2bn" in Funktion ""struct dh_st * __cdecl get_dh2048(void)" (?get_dh2048@@YAPEAUdh_st@@XZ)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "DH_new" in Funktion ""struct dh_st * __cdecl get_dh2048(void)" (?get_dh2048@@YAPEAUdh_st@@XZ)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "DH_free" in Funktion ""struct dh_st * __cdecl get_dh2048(void)" (?get_dh2048@@YAPEAUdh_st@@XZ)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "DH_set0_pqg" in Funktion ""struct dh_st * __cdecl get_dh2048(void)" (?get_dh2048@@YAPEAUdh_st@@XZ)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "X509_STORE_set_flags" in Funktion ""struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD0000_NPEAW4enum_ssl_init_error@@00J at Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "X509_STORE_load_locations" in Funktion ""struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD0000_NPEAW4enum_ssl_init_error@@00J at Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_CTX_set_options" in Funktion ""struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD0000_NPEAW4enum_ssl_init_error@@00J at Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_CTX_set_cipher_list" in Funktion ""struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD0000_NPEAW4enum_ssl_init_error@@00J at Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_CTX_new" in Funktion ""struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD0000_NPEAW4enum_ssl_init_error@@00J at Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_CTX_get_cert_store" in Funktion ""struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD0000_NPEAW4enum_ssl_init_error@@00J at Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_CTX_use_PrivateKey_file" in Funktion ""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)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_CTX_use_certificate_file" in Funktion ""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)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_CTX_set_verify" in Funktion ""struct st_VioSSLFd * __cdecl new_VioSSLConnectorFd(char const *,char const *,char const *,char const *,char const *,enum enum_ssl_init_error *,char const *,char const *,long)" (?new_VioSSLConnectorFd@@YAPEAUst_VioSSLFd@@PEBD0000PEAW4enum_ssl_init_error@@00J at Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_CTX_check_private_key" in Funktion ""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)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_CTX_set_session_id_context" in Funktion ""struct st_VioSSLFd * __cdecl new_VioSSLAcceptorFd(char const *,char const *,char const *,char const *,char const *,enum enum_ssl_init_error *,char const *,char const *,long)" (?new_VioSSLAcceptorFd@@YAPEAUst_VioSSLFd@@PEBD0000PEAW4enum_ssl_init_error@@00J at Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_CTX_ctrl" in Funktion ""struct st_VioSSLFd * __cdecl new_VioSSLAcceptorFd(char const *,char const *,char const *,char const *,char const *,enum enum_ssl_init_error *,char const *,char const *,long)" (?new_VioSSLAcceptorFd@@YAPEAUst_VioSSLFd@@PEBD0000PEAW4enum_ssl_init_error@@00J at Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "TLS_server_method" in Funktion ""struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD0000_NPEAW4enum_ssl_init_error@@00J at Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "TLS_client_method" in Funktion ""struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD0000_NPEAW4enum_ssl_init_error@@00J at Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_CTX_set_default_verify_paths" in Funktion ""struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD0000_NPEAW4enum_ssl_init_error@@00J at Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_CTX_load_verify_locations" in Funktion ""struct st_VioSSLFd * __cdecl new_VioSSLFd(char const *,char const *,char const *,char const *,char const *,bool,enum enum_ssl_init_error *,char const *,char const *,long)" (?new_VioSSLFd@@YAPEAUst_VioSSLFd@@PEBD0000_NPEAW4enum_ssl_init_error@@00J at Z)".
1>mysqlclient.lib(viosslfactories.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "OPENSSL_init_ssl" in Funktion ""void __cdecl ssl_start(void)" (?ssl_start@@YAXXZ)".
1>mysqlclient.lib(client_authentication.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "BIO_free" in Funktion ""int __cdecl sha256_password_auth_client(struct MYSQL_PLUGIN_VIO *,struct MYSQL *)" (?sha256_password_auth_client@@YAHPEAUMYSQL_PLUGIN_VIO@@PEAUMYSQL@@@Z)".
1>mysqlclient.lib(client_authentication.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "BIO_new_mem_buf" in Funktion ""int __cdecl sha256_password_auth_client(struct MYSQL_PLUGIN_VIO *,struct MYSQL *)" (?sha256_password_auth_client@@YAHPEAUMYSQL_PLUGIN_VIO@@PEAUMYSQL@@@Z)".
1>mysqlclient.lib(client_authentication.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "ERR_clear_error" in Funktion ""int __cdecl sha256_password_auth_client(struct MYSQL_PLUGIN_VIO *,struct MYSQL *)" (?sha256_password_auth_client@@YAHPEAUMYSQL_PLUGIN_VIO@@PEAUMYSQL@@@Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "ERR_clear_error".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "ERR_clear_error".
1>mysqlclient.lib(client_authentication.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "RSA_size" in Funktion ""int __cdecl sha256_password_auth_client(struct MYSQL_PLUGIN_VIO *,struct MYSQL *)" (?sha256_password_auth_client@@YAHPEAUMYSQL_PLUGIN_VIO@@PEAUMYSQL@@@Z)".
1>mysqlclient.lib(client_authentication.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "RSA_public_encrypt" in Funktion ""int __cdecl sha256_password_auth_client(struct MYSQL_PLUGIN_VIO *,struct MYSQL *)" (?sha256_password_auth_client@@YAHPEAUMYSQL_PLUGIN_VIO@@PEAUMYSQL@@@Z)".
1>mysqlclient.lib(client_authentication.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "RSA_free" in Funktion "mysql_reset_server_public_key".
1>mysqlclient.lib(client_authentication.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "PEM_read_bio_RSA_PUBKEY" in Funktion ""int __cdecl sha256_password_auth_client(struct MYSQL_PLUGIN_VIO *,struct MYSQL *)" (?sha256_password_auth_client@@YAHPEAUMYSQL_PLUGIN_VIO@@PEAUMYSQL@@@Z)".
1>mysqlclient.lib(client_authentication.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "PEM_read_RSA_PUBKEY" in Funktion ""struct rsa_st * __cdecl rsa_init(struct MYSQL *)" (?rsa_init@@YAPEAUrsa_st@@PEAUMYSQL@@@Z)".
1>mysqlclient.lib(viosocket.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_pending" in Funktion ""bool __cdecl vio_is_connected(struct Vio *)" (?vio_is_connected@@YA_NPEAUVio@@@Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "SSL_pending".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_set_options" in Funktion ""int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,int (__cdecl*)(struct ssl_st *),unsigned long *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JP6AHPEAUssl_st@@@ZPEAK at Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_clear" in Funktion ""int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,int (__cdecl*)(struct ssl_st *),unsigned long *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JP6AHPEAUssl_st@@@ZPEAK at Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_get_fd" in Funktion ""int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,int (__cdecl*)(struct ssl_st *),unsigned long *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JP6AHPEAUssl_st@@@ZPEAK at Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_set_fd" in Funktion ""int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,int (__cdecl*)(struct ssl_st *),unsigned long *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JP6AHPEAUssl_st@@@ZPEAK at Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_SESSION_set_timeout" in Funktion ""int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,int (__cdecl*)(struct ssl_st *),unsigned long *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JP6AHPEAUssl_st@@@ZPEAK at Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_new" in Funktion ""int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,int (__cdecl*)(struct ssl_st *),unsigned long *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JP6AHPEAUssl_st@@@ZPEAK at Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_free" in Funktion ""void __cdecl vio_ssl_delete(struct Vio *)" (?vio_ssl_delete@@YAXPEAUVio@@@Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_accept" in Funktion ""int __cdecl sslaccept(struct st_VioSSLFd *,struct Vio *,long,unsigned long *)" (?sslaccept@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAK at Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_connect" in Funktion ""int __cdecl sslconnect(struct st_VioSSLFd *,struct Vio *,long,unsigned long *)" (?sslconnect@@YAHPEAUst_VioSSLFd@@PEAUVio@@JPEAK at Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_read" in Funktion ""unsigned __int64 __cdecl vio_ssl_read(struct Vio *,unsigned char *,unsigned __int64)" (?vio_ssl_read@@YA_KPEAUVio@@PEAE_K at Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_write" in Funktion ""unsigned __int64 __cdecl vio_ssl_write(struct Vio *,unsigned char const *,unsigned __int64)" (?vio_ssl_write@@YA_KPEAUVio@@PEBE_K at Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_get_error" in Funktion ""bool __cdecl ssl_should_retry(struct Vio *,int,enum enum_vio_io_event *,unsigned long *)" (?ssl_should_retry@@YA_NPEAUVio@@HPEAW4enum_vio_io_event@@PEAK at Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_shutdown" in Funktion ""int __cdecl vio_ssl_shutdown(struct Vio *)" (?vio_ssl_shutdown@@YAHPEAUVio@@@Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_set_quiet_shutdown" in Funktion ""int __cdecl vio_ssl_shutdown(struct Vio *)" (?vio_ssl_shutdown@@YAHPEAUVio@@@Z)".
1>mysqlclient.lib(viossl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "SSL_get_session" in Funktion ""int __cdecl ssl_do(struct st_VioSSLFd *,struct Vio *,long,int (__cdecl*)(struct ssl_st *),unsigned long *)" (?ssl_do@@YAHPEAUst_VioSSLFd@@PEAUVio@@JP6AHPEAUssl_st@@@ZPEAK at Z)".
1>mysqlclient.lib(my_compress.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "compress" in Funktion ""unsigned char * __cdecl my_compress_alloc(unsigned char const *,unsigned __int64 *,unsigned __int64 *)" (?my_compress_alloc@@YAPEAEPEBEPEA_K1 at Z)".
1>mysqlclient.lib(my_compress.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "uncompress" in Funktion ""bool __cdecl my_uncompress(unsigned char *,unsigned __int64,unsigned __int64 *)" (?my_uncompress@@YA_NPEAE_KPEA_K at Z)".
1>mysqlclient.lib(crypt_genhash_impl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_MD_CTX_new" in Funktion ""void __cdecl DIGESTCreate(struct evp_md_ctx_st * *)" (?DIGESTCreate@@YAXPEAPEAUevp_md_ctx_st@@@Z)".
1>mysqlclient.lib(sha2_password_common.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "EVP_MD_CTX_new".
1>mysqlclient.lib(my_sha1.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "EVP_MD_CTX_new".
1>mysqlclient.lib(crypt_genhash_impl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_MD_CTX_free" in Funktion ""void __cdecl DIGESTDestroy(struct evp_md_ctx_st * *)" (?DIGESTDestroy@@YAXPEAPEAUevp_md_ctx_st@@@Z)".
1>mysqlclient.lib(sha2_password_common.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "EVP_MD_CTX_free".
1>mysqlclient.lib(my_sha1.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "EVP_MD_CTX_free".
1>mysqlclient.lib(crypt_genhash_impl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_DigestInit_ex" in Funktion ""void __cdecl DIGESTInit(struct evp_md_ctx_st *)" (?DIGESTInit@@YAXPEAUevp_md_ctx_st@@@Z)".
1>mysqlclient.lib(sha2_password_common.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "EVP_DigestInit_ex".
1>mysqlclient.lib(my_sha1.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "EVP_DigestInit_ex".
1>mysqlclient.lib(crypt_genhash_impl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_DigestUpdate" in Funktion ""void __cdecl DIGESTUpdate(struct evp_md_ctx_st *,void const *,int)" (?DIGESTUpdate@@YAXPEAUevp_md_ctx_st@@PEBXH at Z)".
1>mysqlclient.lib(sha2_password_common.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "EVP_DigestUpdate".
1>mysqlclient.lib(my_sha1.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "EVP_DigestUpdate".
1>mysqlclient.lib(crypt_genhash_impl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_DigestFinal_ex" in Funktion ""void __cdecl DIGESTFinal(void *,struct evp_md_ctx_st *)" (?DIGESTFinal@@YAXPEAXPEAUevp_md_ctx_st@@@Z)".
1>mysqlclient.lib(sha2_password_common.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "EVP_DigestFinal_ex".
1>mysqlclient.lib(my_sha1.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "EVP_DigestFinal_ex".
1>mysqlclient.lib(crypt_genhash_impl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_sha256" in Funktion ""void __cdecl DIGESTInit(struct evp_md_ctx_st *)" (?DIGESTInit@@YAXPEAUevp_md_ctx_st@@@Z)".
1>mysqlclient.lib(sha2_password_common.lib.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "EVP_sha256".
1>mysqlclient.lib(crypt_genhash_impl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "RAND_bytes" in Funktion ""void __cdecl generate_user_salt(char *,int)" (?generate_user_salt@@YAXPEADH at Z)".
1>mysqlclient.lib(sha2_password_common.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_MD_CTX_reset" in Funktion ""public: virtual bool __cdecl sha2_password::SHA256_digest::retrieve_digest(unsigned char *,unsigned int)" (?retrieve_digest at SHA256_digest@sha2_password@@UEAA_NPEAEI at Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "BIO_new_bio_pair" in Funktion ""int __cdecl dummy_function_needed_by_xplugin(void)" (?dummy_function_needed_by_xplugin@@YAHXZ)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_CIPHER_block_size" in Funktion ""int __cdecl my_aes_get_size(unsigned int,enum my_aes_opmode)" (?my_aes_get_size@@YAHIW4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_CIPHER_iv_length" in Funktion ""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)" (?my_aes_encrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_N at Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_EncryptInit" in Funktion ""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)" (?my_aes_encrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_N at Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_EncryptUpdate" in Funktion ""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)" (?my_aes_encrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_N at Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_EncryptFinal" in Funktion ""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)" (?my_aes_encrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_N at Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_DecryptInit" in Funktion ""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)" (?my_aes_decrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_N at Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_DecryptUpdate" in Funktion ""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)" (?my_aes_decrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_N at Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_DecryptFinal_ex" in Funktion ""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)" (?my_aes_decrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_N at Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_CIPHER_CTX_new" in Funktion ""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)" (?my_aes_encrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_N at Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_CIPHER_CTX_free" in Funktion ""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)" (?my_aes_encrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_N at Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_CIPHER_CTX_set_padding" in Funktion ""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)" (?my_aes_encrypt@@YAHPEBEIPEAE0IW4my_aes_opmode@@0_N at Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_128_ecb" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_128_cbc" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_128_cfb1" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_128_cfb8" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_128_cfb128" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_128_ofb" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_192_ecb" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_192_cbc" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_192_cfb1" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_192_cfb8" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_192_cfb128" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_192_ofb" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_256_ecb" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_256_cbc" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_256_cfb1" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_256_cfb8" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_256_cfb128" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_aes_openssl.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_aes_256_ofb" in Funktion ""struct evp_cipher_st const * __cdecl aes_evp_type(enum my_aes_opmode)" (?aes_evp_type@@YAPEBUevp_cipher_st@@W4my_aes_opmode@@@Z)".
1>mysqlclient.lib(my_sha1.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "EVP_sha1" in Funktion ""void __cdecl compute_sha1_hash(unsigned char *,char const *,unsigned __int64)" (?compute_sha1_hash@@YAXPEAEPEBD_K at Z)".
1>C:\Git_repo\Test_ODB\Test_ODB\x64\Debug\Test_ODB.exe : fatal error 
1>LNK1120: 100 nicht aufgelöste Externe
 

-----Ursprüngliche Nachricht-----
Von: Boris Kolpackov <boris at codesynthesis.com>
Gesendet: Mittwoch, 23. Februar 2022 14:26
An: Jannis Röglin <jannis.roeglin at psi-technics.com>
Cc: odb-users at codesynthesis.com
Betreff: Re: [odb-users] Linker issues during compilation with odb-mysqlLib.

Jannis Röglin <jannis.roeglin at psi-technics.com> writes:

> But I get when compiling linker error that external symbols cannot be 
> resolved.
> 
> Following my linker input:
> C:\dependencies\odb\debug-64\lib\odb.lib;
> C:\dependencies\odb\debug-64\lib\odb-mysql.lib;
>
> 1>odb-mysql.lib(statement.lib.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "mysql_stmt_prepare" in Funktion ""private: void __cdecl odb::mysql::statement::init(unsigned __int64,enum odb::mysql::statement_kind,class odb::mysql::binding const *,bool)" (?init at statement@mysql at odb@@AEAAX_KW4statement_kind at 23@PEBVbinding at 23@_N at Z)".

I can see you've built static variants of the ODB runtime libraries. In this case you will also need to link the MySQL runtime library. Try adding mysqlclient.lib to the above list. Also, the correct order (which could be important for static linking) is:

odb-mysql.lib
odb.lib
mysqlclient.lib


> Additional question:
>
> We are using c++20 for our project. Is it possible to create the .hxx 
> file with c++17 and use it for a c++20 project?

Yes, I don't expect there to be any problem with this. We will also try to add the C++20 mode support in the ODB compiler for the next beta.



More information about the odb-users mailing list