multipass
multipass copied to clipboard
Linker error on ubuntu 24.04, it does not occur on ubuntu 23.10
Describe the bug
Any executables of multipass project fail to link at the linkage phase. It is due to the system library libQt6Network.so.6.4.2
links to libcurl-gnutls.so.4
and the latter one links to libssh.so.4
. In Multipass cmake environments, many targets link to Qt6::Network
target which is libQt6Network.so.6.4.2
under the hood.
[ 77%] Linking CXX executable ../bin/multipass_tests
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_scp_free@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_init@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_scp_read@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_connect@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_kbdint@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_opendir@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_get_error@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_mkdir@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_seek64@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_get_poll_flags@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_string_free_char@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_attributes_free@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_pki_import_privkey_file@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_version@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_get_error@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_free@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_try_publickey@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_get_server_publickey@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_scp_new@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_pki_export_pubkey_base64@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_async_read_begin@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_new@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_pki_import_pubkey_file@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_file_set_nonblocking@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_new@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_stat@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_readlink@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_finalize@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_write@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_symlink@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_kbdint_setanswer@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_readdir@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_publickey_auto@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_scp_init@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_key_free@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_closedir@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_options_set@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_free@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_scp_pull_request@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_setstat@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_set_blocking@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_unlink@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_options_parse_config@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_lstat@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_init@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_userauth_password@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_scp_request_get_size@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_open@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_scp_write@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_canonicalize_path@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_key_type@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_scp_push_file@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_scp_close@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_userauth_none@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_kbdint_getnprompts@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_disconnect@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_publickey@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_rename@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_dir_eof@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_statvfs@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_close@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_statvfs_free@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_session_get_known_hosts_entry@LIBSSH_4_8_1' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_clean_pubkey_hash@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_gssapi@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_async_read@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_knownhosts_entry_free@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
sftp_rmdir@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_fstat@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_userauth_list@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_session_update_known_hosts@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to
ssh_get_publickey_hash@LIBSSH_4_5_0'
collect2: error: ld returned 1 exit status
make[2]: *** [tests/CMakeFiles/multipass_tests.dir/build.make:2123: bin/multipass_tests] Error 1
make[1]: *** [CMakeFiles/Makefile2:3873: tests/CMakeFiles/multipass_tests.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
Additional context It is related to https://github.com/canonical/multipass/issues/947