Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!
Merhabalar,Hayrına yardımcı olabilecek biri varsa çok sevinirim
Merhabalar,Hayrına yardımcı olabilecek biri varsa çok sevinirim
Merhabalar, cevabınız ve bilgilendirmeniz için çok teşekkür ederim. Freebsd 14.0 (Enix'in paylaştığı) 13.3 ve 13.1 sürümlerinde bu durum ile karşı karşıya kaldım.Merhabalar,
Aldığın hata derlemeden ziyade link aşamasında çıkıyor ve doğrudan Metin2 server source’larında MySQL–OpenSSL uyumsuzluğunu işaret ediyor. Kodlar derlenmiş gibi görünüyor ama en sonda game binary’si oluşturulurken MySQL client kütüphanesi, ihtiyaç duyduğu OpenSSL fonksiyonlarını bulamıyor.
Log’da geçen şu satırlar bunun göstergesi:
undefined reference to `SSL_get_peer_certificate'
undefined reference to `EVP_CIPHER_iv_length'
undefined reference to `EVP_CIPHER_block_size'
Bu hatalar genelde MySQL’in kullandığı libmysqlclient.a dosyasının OpenSSL’e bağlı olmasına rağmen, derleme sırasında OpenSSL kütüphanelerinin linklenmemesinden kaynaklanır. Yani sorun Lorenzo files’ta ya da eklediğin sistemlerde değil, tamamen kütüphane tarafında.
Kontrol etmen gereken noktalar şunlar:
Öncelikle sistemde OpenSSL kurulu mu ve düzgün çalışıyor mu bak. openssl version komutu ile sürümü kontrol et. MySQL’in derlendiği OpenSSL sürümüyle sistemdeki sürüm çok alakasızsa bu tip hatalar çıkabiliyor.
Game source içindeki Makefile’ı açıp, kütüphanelerin eklendiği kısımda OpenSSL linkleri var mı kontrol et. Çoğu zaman şu satırlar eksik oluyor:
-lssl -lcrypto
Bunlar eklenmeden statik MySQL client kullanıldığında ld bu hataları veriyor.
Bir diğer ihtimal, sistemde birden fazla MySQL / MariaDB client bulunması. /usr/local/lib/mysql/libmysqlclient.a dosyasının gerçekten kullandığın MySQL sürümüne ait olduğundan emin ol. Yanlış sürümden gelen bir client da aynı hatayı üretir.
Eğer MariaDB kullanıyorsan, bu files’larda daha sık sorun çıkabiliyor. Lorenzo’nun files’ları genelde klasik MySQL’e göre hazırlanmış oluyor. Bu durumda ya uyumlu bir MySQL sürümüne geçmek ya da Makefile’ı MariaDB + OpenSSL uyumuna göre düzenlemek gerekiyor.
Kısacası:
Bu hata kodsal değil, tamamen MySQL client + OpenSSL link problemi. Doğru OpenSSL sürümü ve Makefile’a eklenen -lssl -lcrypto ile genelde sorunsuz şekilde derleme tamamlanıyor.
Kullandığın sistem (FreeBSD/Linux sürümü, MySQL ya da MariaDB versiyonu) bilgisini paylaşırsan, daha net bir yol da çizilebilir.
Makefile dosyasının içeriğini buraya atar mısınız rica etsem?Merhabalar, cevabınız ve bilgilendirmeniz için çok teşekkür ederim. Freebsd 14.0 (Enix'in paylaştığı) 13.3 ve 13.1 sürümlerinde bu durum ile karşı karşıya kaldım.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?