Arman92 / go-tdlib

Golang Telegram TdLib JSON bindings
GNU General Public License v3.0
436 stars 100 forks source link

(MacOS X) ld: symbol(s) not found for architecture x86_64 #14

Closed maxskorr closed 5 years ago

maxskorr commented 5 years ago

@Arman92 thank you for the package!

I am getting the following error when building an example on Mac OS X Mojave:

# github.com/Arman92/go-tdlib Undefined symbols for architecture x86_64: "td::AesCtrState::init(td::UInt<256ul> const&, td::UInt<128ul> const&)", referenced from: td::Binlog::update_encryption(td::Slice, td::Slice) in libtddb.a(Binlog.cpp.o) td::FileDownloader::process_part(td::Part, td::ObjectPool<td::NetQuery>::OwnerPtr) in libtdcore.a(FileDownloader.cpp.o) td::mtproto::tcp::ObfuscatedTransport::init(td::ChainBufferReader*, td::ChainBufferWriter*) in libtdcore.a(TcpTransport.cpp.o) "td::AesCtrState::decrypt(td::Slice, td::MutableSlice)", referenced from: td::FileDownloader::process_part(td::Part, td::ObjectPool<td::NetQuery>::OwnerPtr) in libtdcore.a(FileDownloader.cpp.o) "td::AesCtrState::encrypt(td::Slice, td::MutableSlice)", referenced from: td::AesCtrByteFlow::loop() in libtddb.a(Binlog.cpp.o) td::AesCtrByteFlow::loop() in libtdcore.a(IStreamTransport.cpp.o) td::mtproto::tcp::ObfuscatedTransport::init(td::ChainBufferReader*, td::ChainBufferWriter*) in libtdcore.a(TcpTransport.cpp.o) td::mtproto::tcp::ObfuscatedTransport::write(td::BufferWriter&&, bool) in libtdcore.a(TcpTransport.cpp.o) td::AesCtrByteFlow::loop() in libtdcore.a(TcpTransport.cpp.o) "td::AesCtrState::AesCtrState(td::AesCtrState&&)", referenced from: td::Binlog::load_binlog(std::__1::function<void (td::BinlogEvent const&)> const&, std::__1::function<void (td::BinlogEvent const&)> const&) in libtddb.a(Binlog.cpp.o) td::Binlog::do_reindex() in libtddb.a(Binlog.cpp.o) "td::AesCtrState::AesCtrState()", referenced from: td::Binlog::Binlog() in libtddb.a(Binlog.cpp.o) td::Binlog::Binlog() in libtddb.a(Binlog.cpp.o) td::Binlog::update_read_encryption() in libtddb.a(Binlog.cpp.o) td::Binlog::update_write_encryption() in libtddb.a(Binlog.cpp.o) td::mtproto::create_transport(td::mtproto::TransportType) in libtdcore.a(IStreamTransport.cpp.o) td::FileDownloader::process_part(td::Part, td::ObjectPool<td::NetQuery>::OwnerPtr) in libtdcore.a(FileDownloader.cpp.o) "td::AesCtrState::~AesCtrState()", referenced from: td::Binlog::~Binlog() in libtddb.a(Binlog.cpp.o) td::AesCtrByteFlow::~AesCtrByteFlow() in libtddb.a(Binlog.cpp.o) td::Binlog::load_binlog(std::__1::function<void (td::BinlogEvent const&)> const&, std::__1::function<void (td::BinlogEvent const&)> const&) in libtddb.a(Binlog.cpp.o) td::Binlog::do_reindex() in libtddb.a(Binlog.cpp.o) td::Binlog::update_read_encryption() in libtddb.a(Binlog.cpp.o) td::Binlog::update_write_encryption() in libtddb.a(Binlog.cpp.o) td::AesCtrByteFlow::~AesCtrByteFlow() in libtddb.a(Binlog.cpp.o) ... "td::AesCtrState::operator=(td::AesCtrState&&)", referenced from: td::Binlog::load_binlog(std::__1::function<void (td::BinlogEvent const&)> const&, std::__1::function<void (td::BinlogEvent const&)> const&) in libtddb.a(Binlog.cpp.o) td::Binlog::do_reindex() in libtddb.a(Binlog.cpp.o) td::Binlog::update_read_encryption() in libtddb.a(Binlog.cpp.o) td::Binlog::update_write_encryption() in libtddb.a(Binlog.cpp.o) "td::Sha256State::Sha256State()", referenced from: td::ActorOwn<td::FileHashUploader> td::create_actor<td::FileHashUploader, td::FullLocalFileLocation const&, long long&, std::__1::unique_ptr<td::FileLoadManager::FileHashUploaderCallback, std::__1::default_delete<td::FileLoadManager::FileHashUploaderCallback> > >(td::Slice, td::FullLocalFileLocation const&&&, long long&&&, std::__1::unique_ptr<td::FileLoadManager::FileHashUploaderCallback, std::__1::default_delete<td::FileLoadManager::FileHashUploaderCallback> >&&) in libtdcore.a(FileLoadManager.cpp.o) td::mtproto::Transport::calc_message_key2(td::mtproto::AuthKey const&, int, td::Slice) in libtdcore.a(Transport.cpp.o) "td::Sha256State::~Sha256State()", referenced from: td::mtproto::Transport::calc_message_key2(td::mtproto::AuthKey const&, int, td::Slice) in libtdcore.a(Transport.cpp.o) td::FileHashUploader::~FileHashUploader() in libtdcore.a(FileHashUploader.cpp.o) "td::hmac_sha256(td::Slice, td::Slice, td::MutableSlice)", referenced from: td::Binlog::do_event(td::BinlogEvent&&) in libtddb.a(Binlog.cpp.o) td::Binlog::reset_encryption() in libtddb.a(Binlog.cpp.o) "td::init_crypto()", referenced from: td::RSA::from_pem(td::Slice) in libtdcore.a(crypto.cpp.o) "td::sha256_init(td::Sha256State*)", referenced from: td::mtproto::Transport::calc_message_key2(td::mtproto::AuthKey const&, int, td::Slice) in libtdcore.a(Transport.cpp.o) td::FileHashUploader::init() in libtdcore.a(FileHashUploader.cpp.o) "td::pq_factorize(td::Slice, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)", referenced from: td::mtproto::AuthKeyHandshake::on_res_pq(td::Slice, td::mtproto::AuthKeyHandshake::Callback*, td::PublicRsaKeyInterface*) in libtdcore.a(Handshake.cpp.o) "td::sha256_final(td::Sha256State*, td::MutableSlice)", referenced from: td::mtproto::Transport::calc_message_key2(td::mtproto::AuthKey const&, int, td::Slice) in libtdcore.a(Transport.cpp.o) td::FileHashUploader::loop_impl() in libtdcore.a(FileHashUploader.cpp.o) "td::BigNumContext::BigNumContext(td::BigNumContext&&)", referenced from: td::Result<td::SecretChatActor::AuthState> td::SecretChatDb::get_value<td::SecretChatActor::AuthState>() in libtdcore.a(SecretChatActor.cpp.o) td::Result<td::SecretChatActor::AuthState>::move_as_ok() in libtdcore.a(SecretChatActor.cpp.o) td::Result<td::SecretChatActor::PfsState> td::SecretChatDb::get_value<td::SecretChatActor::PfsState>() in libtdcore.a(SecretChatActor.cpp.o) td::Result<td::SecretChatActor::PfsState>::move_as_ok() in libtdcore.a(SecretChatActor.cpp.o) "td::BigNumContext::BigNumContext()", referenced from: td::CallActor::CallActor(td::CallId, td::ActorShared<td::Actor>, td::Promise<long long>) in libtdcore.a(CallActor.cpp.o) td::CallActor::CallActor(td::CallId, td::ActorShared<td::Actor>, td::Promise<long long>) in libtdcore.a(CallActor.cpp.o) td::RSA::encrypt(unsigned char*, unsigned long, unsigned char*) const in libtdcore.a(crypto.cpp.o) td::RSA::decrypt(td::Slice, td::MutableSlice) const in libtdcore.a(crypto.cpp.o) td::dh_handshake(int, td::Slice, td::Slice, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, td::DhCallback*) in libtdcore.a(crypto.cpp.o) td::SecretChatActor::SecretChatActor(int, std::__1::unique_ptr<td::SecretChatActor::Context, std::__1::default_delete<td::SecretChatActor::Context> >, bool) in libtdcore.a(SecretChatActor.cpp.o) td::SecretChatActor::request_new_key() in libtdcore.a(SecretChatActor.cpp.o) ... "td::BigNumContext::~BigNumContext()", referenced from: td::CallActor::~CallActor() in libtdcore.a(CallActor.cpp.o) td::RSA::encrypt(unsigned char*, unsigned long, unsigned char*) const in libtdcore.a(crypto.cpp.o) td::RSA::decrypt(td::Slice, td::MutableSlice) const in libtdcore.a(crypto.cpp.o) td::dh_handshake(int, td::Slice, td::Slice, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, td::DhCallback*) in libtdcore.a(crypto.cpp.o) td::SecretChatActor::request_new_key() in libtdcore.a(SecretChatActor.cpp.o) td::SecretChatActor::start_up() in libtdcore.a(SecretChatActor.cpp.o) td::Result<td::SecretChatActor::AuthState> td::SecretChatDb::get_value<td::SecretChatActor::AuthState>() in libtdcore.a(SecretChatActor.cpp.o) ... "td::BigNumContext::operator=(td::BigNumContext&&)", referenced from: td::DhHandshake::operator=(td::DhHandshake&&) in libtdcore.a(SecretChatActor.cpp.o) "td::pbkdf2_sha256(td::Slice, td::Slice, int, td::MutableSlice)", referenced from: td::detail::AesCtrEncryptionEvent::generate_key(td::DbKey const&) in libtddb.a(Binlog.cpp.o) "td::sha256_update(td::Slice, td::Sha256State*)", referenced from: td::mtproto::Transport::calc_message_key2(td::mtproto::AuthKey const&, int, td::Slice) in libtdcore.a(Transport.cpp.o) td::FileHashUploader::loop_sha() in libtdcore.a(FileHashUploader.cpp.o) "td::aes_cbc_decrypt(td::UInt<256ul> const&, td::UInt<128ul>*, td::Slice, td::MutableSlice)", referenced from: td::decode_config(td::Slice) in libtdcore.a(ConfigManager.cpp.o) "td::aes_ige_decrypt(td::UInt<256ul> const&, td::UInt<256ul>*, td::Slice, td::MutableSlice)", referenced from: td::FileDownloader::process_part(td::Part, td::ObjectPool<td::NetQuery>::OwnerPtr) in libtdcore.a(FileDownloader.cpp.o) td::mtproto::AuthKeyHandshake::on_server_dh_params(td::Slice, td::mtproto::AuthKeyHandshake::Callback*, td::DhCallback*) in libtdcore.a(Handshake.cpp.o) td::Status td::mtproto::Transport::read_crypto_impl<td::mtproto::CryptoHeader, td::mtproto::CryptoPrefix>(int, td::MutableSlice, td::mtproto::AuthKey const&, td::mtproto::CryptoHeader**, td::mtproto::CryptoPrefix**, td::MutableSlice*, td::mtproto::PacketInfo*) in libtdcore.a(Transport.cpp.o) td::Status td::mtproto::Transport::read_crypto_impl<td::mtproto::EndToEndHeader, td::mtproto::EndToEndPrefix>(int, td::MutableSlice, td::mtproto::AuthKey const&, td::mtproto::EndToEndHeader**, td::mtproto::EndToEndPrefix**, td::MutableSlice*, td::mtproto::PacketInfo*) in libtdcore.a(Transport.cpp.o) "td::aes_ige_encrypt(td::UInt<256ul> const&, td::UInt<256ul>*, td::Slice, td::MutableSlice)", referenced from: td::FileUploader::generate_iv_map() in libtdcore.a(FileUploader.cpp.o) td::FileUploader::start_part(td::Part, int) in libtdcore.a(FileUploader.cpp.o) td::mtproto::AuthKeyHandshake::on_server_dh_params(td::Slice, td::mtproto::AuthKeyHandshake::Callback*, td::DhCallback*) in libtdcore.a(Handshake.cpp.o) void td::mtproto::Transport::write_crypto_impl<td::mtproto::CryptoHeader>(int, td::Storer const&, td::mtproto::AuthKey const&, td::mtproto::PacketInfo*, td::mtproto::CryptoHeader*, unsigned long) in libtdcore.a(Transport.cpp.o) void td::mtproto::Transport::write_crypto_impl<td::mtproto::EndToEndHeader>(int, td::Storer const&, td::mtproto::AuthKey const&, td::mtproto::PacketInfo*, td::mtproto::EndToEndHeader*, unsigned long) in libtdcore.a(Transport.cpp.o) "td::init_openssl_threads()", referenced from: td::Client::Client() in libtdclient.a(Client.cpp.o) td::Client::Client() in libtdclient.a(Client.cpp.o) "td::verbosity_connections", referenced from: td::ConnectionCreator::client_loop(td::ConnectionCreator::ClientInfo&) in libtdcore.a(ConnectionCreator.cpp.o) td::ConnectionCreator::request_raw_connection(td::DcId, bool, bool, td::Promise<std::__1::unique_ptr<td::mtproto::RawConnection, std::__1::default_delete<td::mtproto::RawConnection> > >, unsigned long) in libtdcore.a(ConnectionCreator.cpp.o) td::ConnectionCreator::client_set_timeout_at(td::ConnectionCreator::ClientInfo&, double) in libtdcore.a(ConnectionCreator.cpp.o) td::ConnectionCreator::client_create_raw_connection(td::Result<td::ConnectionCreator::ConnectionData>, bool, bool, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned int) in libtdcore.a(ConnectionCreator.cpp.o) auto td::ConnectionCreator::client_loop(td::ConnectionCreator::ClientInfo&)::$_1::operator()<std::__1::pair<std::__1::unique_ptr<td::mtproto::RawConnection, std::__1::default_delete<td::mtproto::RawConnection> >, double> >(std::__1::pair<std::__1::unique_ptr<td::mtproto::RawConnection, std::__1::default_delete<td::mtproto::RawConnection> >, double>&) const in libtdcore.a(ConnectionCreator.cpp.o) td::ConnectionCreator::client_create_raw_connection(td::Result<td::ConnectionCreator::ConnectionData>, bool, bool, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned int)::$_4::operator()(td::Result<std::__1::unique_ptr<td::mtproto::RawConnection, std::__1::default_delete<td::mtproto::RawConnection> > >) in libtdcore.a(ConnectionCreator.cpp.o) "td::md5(td::Slice, td::MutableSlice)", referenced from: td::FileManager::on_upload_ok(unsigned long long, td::FileType, td::PartialRemoteFileLocation const&, long long) in libtdcore.a(FileManager.cpp.o) "td::sha1(td::Slice, unsigned char*)", referenced from: td::RSA::get_fingerprint() const in libtdcore.a(crypto.cpp.o) td::dh_auth_key_id(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libtdcore.a(crypto.cpp.o) td::DhHandshake::gen_key() in libtdcore.a(crypto.cpp.o) td::DhHandshake::calc_key_id(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libtdcore.a(crypto.cpp.o) td::KDF(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, td::UInt<128ul> const&, int, td::UInt<256ul>*, td::UInt<256ul>*) in libtdcore.a(crypto.cpp.o) td::tmp_KDF(td::UInt<128ul> const&, td::UInt<256ul> const&, td::UInt<256ul>*, td::UInt<256ul>*) in libtdcore.a(crypto.cpp.o) td::SecretChatActor::calc_key_hash() in libtdcore.a(SecretChatActor.cpp.o) ... "td::BigNum::from_binary(td::Slice)", referenced from: td::RSA::encrypt(unsigned char*, unsigned long, unsigned char*) const in libtdcore.a(crypto.cpp.o) td::RSA::decrypt(td::Slice, td::MutableSlice) const in libtdcore.a(crypto.cpp.o) td::DhHandshake::set_config(int, td::Slice) in libtdcore.a(crypto.cpp.o) td::DhHandshake::set_g_a(td::Slice) in libtdcore.a(crypto.cpp.o) void td::DhHandshake::parse<td::TlParser>(td::TlParser&) in libtdcore.a(SecretChatActor.cpp.o) "td::BigNum::ensure_const_time()", referenced from: td::RSA::RSA(td::BigNum, td::BigNum) in libtdcore.a(crypto.cpp.o) td::RSA::RSA(td::BigNum, td::BigNum) in libtdcore.a(crypto.cpp.o) td::RSA::clone() const in libtdcore.a(crypto.cpp.o) td::RSA::from_pem(td::Slice) in libtdcore.a(crypto.cpp.o) "td::BigNum::sub(td::BigNum&, td::BigNum const&, td::BigNum const&)", referenced from: td::DhHandshake::dh_check(td::Slice, td::BigNum const&, int, td::BigNum const&, td::BigNum const&, td::BigNumContext&, td::DhCallback*) in libtdcore.a(crypto.cpp.o) "td::BigNum::random(td::BigNum&, int, int, int)", referenced from: td::DhHandshake::set_config(int, td::Slice) in libtdcore.a(crypto.cpp.o) "td::BigNum::compare(td::BigNum const&, td::BigNum const&)", referenced from: td::DhHandshake::dh_check(td::Slice, td::BigNum const&, int, td::BigNum const&, td::BigNum const&, td::BigNumContext&, td::DhCallback*) in libtdcore.a(crypto.cpp.o) "td::BigNum::mod_exp(td::BigNum&, td::BigNum const&, td::BigNum const&, td::BigNum const&, td::BigNumContext&)", referenced from: td::RSA::encrypt(unsigned char*, unsigned long, unsigned char*) const in libtdcore.a(crypto.cpp.o) td::RSA::decrypt(td::Slice, td::MutableSlice) const in libtdcore.a(crypto.cpp.o) td::DhHandshake::set_config(int, td::Slice) in libtdcore.a(crypto.cpp.o) td::DhHandshake::gen_key() in libtdcore.a(crypto.cpp.o) "td::BigNum::set_bit(int)", referenced from: td::DhHandshake::dh_check(td::Slice, td::BigNum const&, int, td::BigNum const&, td::BigNum const&, td::BigNumContext&, td::DhCallback*) in libtdcore.a(crypto.cpp.o) "td::BigNum::from_raw(void*)", referenced from: td::RSA::from_pem(td::Slice) in libtdcore.a(crypto.cpp.o) "td::BigNum::set_value(unsigned int)", referenced from: td::DhHandshake::dh_check(td::Slice, td::BigNum const&, int, td::BigNum const&, td::BigNum const&, td::BigNumContext&, td::DhCallback*) in libtdcore.a(crypto.cpp.o) td::DhHandshake::set_config(int, td::Slice) in libtdcore.a(crypto.cpp.o) void td::DhHandshake::parse<td::TlParser>(td::TlParser&) in libtdcore.a(SecretChatActor.cpp.o) "td::BigNum::BigNum(td::BigNum&&)", referenced from: td::decode_config(td::Slice) in libtdcore.a(ConfigManager.cpp.o) td::RSA::RSA(td::BigNum, td::BigNum) in libtdcore.a(crypto.cpp.o) td::RSA::RSA(td::BigNum, td::BigNum) in libtdcore.a(crypto.cpp.o) td::RSA::clone() const in libtdcore.a(crypto.cpp.o) td::RSA::from_pem(td::Slice) in libtdcore.a(crypto.cpp.o) td::Result<td::SecretChatActor::AuthState> td::SecretChatDb::get_value<td::SecretChatActor::AuthState>() in libtdcore.a(SecretChatActor.cpp.o) td::Result<td::SecretChatActor::AuthState>::move_as_ok() in libtdcore.a(SecretChatActor.cpp.o) ... "td::BigNum::BigNum(td::BigNum const&)", referenced from: td::DhHandshake::dh_check(td::Slice, td::BigNum const&, int, td::BigNum const&, td::BigNum const&, td::BigNumContext&, td::DhCallback*) in libtdcore.a(crypto.cpp.o) void std::__1::vector<td::PublicRsaKeyShared::RsaOption, std::__1::allocator<td::PublicRsaKeyShared::RsaOption> >::__push_back_slow_path<td::PublicRsaKeyShared::RsaOption>(td::PublicRsaKeyShared::RsaOption&&) in libtdcore.a(PublicRsaKeyShared.cpp.o) "td::BigNum::BigNum()", referenced from: td::CallActor::CallActor(td::CallId, td::ActorShared<td::Actor>, td::Promise<long long>) in libtdcore.a(CallActor.cpp.o) td::CallActor::CallActor(td::CallId, td::ActorShared<td::Actor>, td::Promise<long long>) in libtdcore.a(CallActor.cpp.o) td::RSA::encrypt(unsigned char*, unsigned long, unsigned char*) const in libtdcore.a(crypto.cpp.o) td::RSA::decrypt(td::Slice, td::MutableSlice) const in libtdcore.a(crypto.cpp.o) td::DhHandshake::dh_check(td::Slice, td::BigNum const&, int, td::BigNum const&, td::BigNum const&, td::BigNumContext&, td::DhCallback*) in libtdcore.a(crypto.cpp.o) td::DhHandshake::set_config(int, td::Slice) in libtdcore.a(crypto.cpp.o) td::DhHandshake::gen_key() in libtdcore.a(crypto.cpp.o) ... "td::BigNum::~BigNum()", referenced from: td::CallActor::~CallActor() in libtdcore.a(CallActor.cpp.o) td::decode_config(td::Slice) in libtdcore.a(ConfigManager.cpp.o) td::RSA::~RSA() in libtdcore.a(ConfigManager.cpp.o) td::PublicRsaKeyShared::~PublicRsaKeyShared() in libtdcore.a(ConfigManager.cpp.o) td::PublicRsaKeyShared::~PublicRsaKeyShared() in libtdcore.a(NetQueryDispatcher.cpp.o) td::RSA::clone() const in libtdcore.a(crypto.cpp.o) td::RSA::from_pem(td::Slice) in libtdcore.a(crypto.cpp.o) ... "td::BigNum::operator=(td::BigNum&&)", referenced from: td::DhHandshake::set_config(int, td::Slice) in libtdcore.a(crypto.cpp.o) td::DhHandshake::set_g_a(td::Slice) in libtdcore.a(crypto.cpp.o) td::DhHandshake::operator=(td::DhHandshake&&) in libtdcore.a(SecretChatActor.cpp.o) void td::DhHandshake::parse<td::TlParser>(td::TlParser&) in libtdcore.a(SecretChatActor.cpp.o) "td::BigNum::operator/=(unsigned int)", referenced from: td::DhHandshake::dh_check(td::Slice, td::BigNum const&, int, td::BigNum const&, td::BigNum const&, td::BigNumContext&, td::DhCallback*) in libtdcore.a(crypto.cpp.o) "td::BigNum::operator-=(unsigned int)", referenced from: td::DhHandshake::dh_check(td::Slice, td::BigNum const&, int, td::BigNum const&, td::BigNum const&, td::BigNumContext&, td::DhCallback*) in libtdcore.a(crypto.cpp.o) "td::Random::secure_bytes(td::MutableSlice)", referenced from: td::FileEncryptionKey::create() in libtdcore.a(FileManager.cpp.o) td::PasswordManager::do_update_password_settings(td::PasswordManager::UpdateSettings, td::PasswordManager::PasswordState, td::Promise<bool>) in libtdcore.a(PasswordManager.cpp.o) td::TdDb::init(int, td::TdParameters const&, td::DbKey, td::TdDb::Events&) in libtdcore.a(TdDb.cpp.o) td::Binlog::reset_encryption() in libtddb.a(Binlog.cpp.o) td::FileUploader::start_part(td::Part, int) in libtdcore.a(FileUploader.cpp.o) "td::Random::secure_bytes(unsigned char*, unsigned long)", referenced from: td::mtproto::PingConnection::flush() in libtdcore.a(ConnectionCreator.cpp.o) td::RSA::encrypt(unsigned char*, unsigned long, unsigned char*) const in libtdcore.a(crypto.cpp.o) td::SecretChatActor::create_encrypted_message(int, int, int, std::__1::unique_ptr<td::secret_api::DecryptedMessage, std::__1::default_delete<td::secret_api::DecryptedMessage> >&) in libtdcore.a(SecretChatActor.cpp.o) td::Session::Session(std::__1::unique_ptr<td::Session::Callback, std::__1::default_delete<td::Session::Callback> >, std::__1::shared_ptr<td::AuthDataShared>, bool, bool, bool, td::mtproto::AuthKey const&) in libtdcore.a(Session.cpp.o) td::mtproto::AuthKeyHandshake::on_res_pq(td::Slice, td::mtproto::AuthKeyHandshake::Callback*, td::PublicRsaKeyInterface*) in libtdcore.a(Handshake.cpp.o) td::mtproto::AuthKeyHandshake::on_server_dh_params(td::Slice, td::mtproto::AuthKeyHandshake::Callback*, td::DhCallback*) in libtdcore.a(Handshake.cpp.o) td::mtproto::AuthKeyHandshake::on_start(td::mtproto::AuthKeyHandshake::Callback*) in libtdcore.a(Handshake.cpp.o) ... "td::Random::secure_int32()", referenced from: td::CallActor::try_send_request_query() in libtdcore.a(CallActor.cpp.o) td::get_thumbnail_photo_size(td::FileManager*, td::BufferSlice, td::DialogId, int, int) in libtdcore.a(Photo.cpp.o) td::SecretChatsManager::create_chat(int, long long, td::Promise<td::SecretChatId>) in libtdcore.a(SecretChatsManager.cpp.o) td::SecretChatsManager::make_secret_chat_context(int) in libtdcore.a(SecretChatsManager.cpp.o) td::MultiSequenceDispatcher::send_with_callback(td::ObjectPool<td::NetQuery>::OwnerPtr, td::ActorShared<td::NetQueryCallback>, unsigned long long) in libtdcore.a(SequenceDispatcher.cpp.o) td::mtproto::AuthData::next_message_id(double) in libtdcore.a(AuthData.cpp.o) "td::Random::secure_int64()", referenced from: td::get_thumbnail_photo_size(td::FileManager*, td::BufferSlice, td::DialogId, int, int) in libtdcore.a(Photo.cpp.o) td::ContactsManager::get_blocked_users(int, int, td::Promise<td::Unit>&&) in libtdcore.a(ContactsManager.cpp.o) td::ContactsManager::import_contacts(std::__1::vector<std::__1::unique_ptr<td::td_api::contact, std::__1::default_delete<td::td_api::contact> >, std::__1::allocator<std::__1::unique_ptr<td::td_api::contact, std::__1::default_delete<td::td_api::contact> > > > const&, long long&, td::Promise<td::Unit>&&) in libtdcore.a(ContactsManager.cpp.o) td::ContactsManager::get_channel_participant(td::ChannelId, td::UserId, long long&, bool, td::Promise<td::Unit>&&) in libtdcore.a(ContactsManager.cpp.o) td::ContactsManager::get_channel_participants(td::ChannelId, std::__1::unique_ptr<td::td_api::SupergroupMembersFilter, std::__1::default_delete<td::td_api::SupergroupMembersFilter> > const&, int, int, long long&, bool, td::Promise<td::Unit>&&) in libtdcore.a(ContactsManager.cpp.o) td::MessagesManager::on_send_message_file_part_missing(long long, int) in libtdcore.a(MessagesManager.cpp.o) td::MessagesManager::create_new_group_chat(std::__1::vector<td::UserId, std::__1::allocator<td::UserId> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long long&, td::Promise<td::Unit>&&) in libtdcore.a(MessagesManager.cpp.o) ... "td::sha256(td::Slice, td::MutableSlice)", referenced from: td::AuthManager::check_password(unsigned long long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in libtdcore.a(AuthManager.cpp.o) td::CallActor::get_emojis_fingerprint(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libtdcore.a(CallActor.cpp.o) td::decode_config(td::Slice) in libtdcore.a(ConfigManager.cpp.o) td::calc_password_hash(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libtdcore.a(PasswordManager.cpp.o) td::DhHandshake::set_g_a(td::Slice) in libtdcore.a(crypto.cpp.o) td::DhHandshake::get_g_b_hash() const in libtdcore.a(crypto.cpp.o) td::KDF2(td::Slice, td::UInt<128ul> const&, int, td::UInt<256ul>*, td::UInt<256ul>*) in libtdcore.a(crypto.cpp.o) ... "td::IPAddress::init_host_port(td::CSlice, int)", referenced from: td::ConnectionCreator::client_loop(td::ConnectionCreator::ClientInfo&) in libtdcore.a(ConnectionCreator.cpp.o) td::GetHostByNameActor::load_ip(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int) in libtdnet.a(GetHostByNameActor.cpp.o) td::Wget::try_init() in libtdnet.a(Wget.cpp.o) (maybe you meant: __ZN2td9IPAddress14init_host_portENS_6CSliceEib) "td::BigNum::is_bit_set(int) const", referenced from: td::DhHandshake::dh_check(td::Slice, td::BigNum const&, int, td::BigNum const&, td::BigNum const&, td::BigNumContext&, td::DhCallback*) in libtdcore.a(crypto.cpp.o) "td::BigNum::get_num_bits() const", referenced from: td::RSA::encrypt(unsigned char*, unsigned long, unsigned char*) const in libtdcore.a(crypto.cpp.o) td::DhHandshake::dh_check(td::Slice, td::BigNum const&, int, td::BigNum const&, td::BigNum const&, td::BigNumContext&, td::DhCallback*) in libtdcore.a(crypto.cpp.o) "td::BigNum::clone() const", referenced from: td::RSA::clone() const in libtdcore.a(crypto.cpp.o) "td::BigNum::is_prime(td::BigNumContext&) const", referenced from: td::DhHandshake::dh_check(td::Slice, td::BigNum const&, int, td::BigNum const&, td::BigNum const&, td::BigNumContext&, td::DhCallback*) in libtdcore.a(crypto.cpp.o) "td::BigNum::to_binary(int) const", referenced from: td::RSA::get_fingerprint() const in libtdcore.a(crypto.cpp.o) td::RSA::encrypt(unsigned char*, unsigned long, unsigned char*) const in libtdcore.a(crypto.cpp.o) td::RSA::decrypt(td::Slice, td::MutableSlice) const in libtdcore.a(crypto.cpp.o) td::DhHandshake::get_g_a() const in libtdcore.a(crypto.cpp.o) td::DhHandshake::get_g_b() const in libtdcore.a(crypto.cpp.o) td::DhHandshake::get_g_b_hash() const in libtdcore.a(crypto.cpp.o) td::DhHandshake::gen_key() in libtdcore.a(crypto.cpp.o) ... "td::BigNum::operator%(unsigned int) const", referenced from: td::DhHandshake::dh_check(td::Slice, td::BigNum const&, int, td::BigNum const&, td::BigNum const&, td::BigNumContext&, td::DhCallback*) in libtdcore.a(crypto.cpp.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Do you have any ideas about a possible fix for this issue or maybe I am missing something?

Arman92 commented 5 years ago

Can you please file an issue on tdlib repo? And please take a look at this issue: https://github.com/tdlib/td/issues/110

maxskorr commented 5 years ago

Thanks! As it turned out, I used a wrong path to ssl library. In my case the command I had to use to build the library was:

cmake -DCMAKE_BUILD_TYPE=Release -DOPENSSL_ROOT_DIR=/usr/lib/ssl ..