Selamlar, discord_rpc sistemini sorunsuz bir şekilde kurdum. build ederken tek hata aldığım yer discord_rpc_r.lib dosyası açılamıyor. vs2022 kullanıyorum normalde. farklı fileslerden o dosyayı aldığımda sürüm hatası veriyor. Whistlenin videosunu izledim ancak extern build etme konusunu pek anlamadım. Bu konuda yardımcı olabilecek varsa çok sevinirim.
O hata aslında çok net:
discord_rpc_r.lib açılamıyor → linker bu .lib dosyasını bulamıyor ya da hiç yok.
Başka src’den aldığın lib ise farklı VS/toolset ile derlendiği için sürüm / CRT uyumsuzluğu veriyor (LNK2038 vs).
Bu işi çözmenin yolu şu:

Kendi kullandığın VS sürümüyle (v143 – VS2022)
discord_rpc kütüphanesini kendin derleyip doğru isimle/game’e linklemek.
Aşağıya 3 adımda özetliyorum.
Önce şunu netleştirelim: discord_rpc_r.lib ne?
Metin2 kaynaklarında genelde:
- Debug’da: discord_rpc_d.lib
- Release’te: discord_rpc_r.lib
(veya tam tersi, packi hazırlayana göre)
Yani bu,
discord-rpc’nin Release için derlenmiş static library’si.
Senin projende:
- Linker → Input → Additional Dependencies içinde discord_rpc_r.lib yazıyor
- Ama Extern\lib içinde bu dosya yok → “açılamıyor” hatası

Başkasının packinden aldığın .lib, büyük ihtimalle:
- VS2013/2015 için derlenmiş
- /MD ile derlenmiş, sen /MT kullanıyorsun
- Bu yüzden “sürüm hatası / CRT mismatch” veriyor.
Doğrusu:
kendi projene uygun bir lib derleyip kullanmak.
Extern’i derleyerek kendi discord_rpc_r.lib dosyanı üret
Çoğu kaynakta şu klasör yapısı vardır:
Src/
ExtLibs / Extern / External /
Discord/
discord_rpc/
src, include, vsproj vs...
veya direkt Extern.sln gibi bir solution.
Adım adım:
- VS2022 ile Extern/Discord çözümünü aç
- Örn: Extern/discord_rpc.sln
- Ya da Extern/Extern.sln içinde bir discord_rpc projesi
- Üstten şu ayarları yap:
- Solution Configuration: Release
- Platform: Win32 (x64 değil; Metin2 game/db 32-bit’tir)
- Build → Build Solution de.
Başarılıysa sana şuna benzer bir şey üretir:
Extern\discord_rpc\Release\discord_rpc.lib
- Şimdi bu lib’i al ve Metin2’nin beklediği yere kopyala:
Örnek:
Src\Extern\lib\discord_rpc_r.lib
Eğer proje Extern\lib\discord_rpc_r.lib arıyorsa:
- discord_rpc.lib dosyasını oraya kopyala
- Adını discord_rpc_r.lib olarak değiştir
- Aynı işlemi bir de Debug için yap (istersen):
- Configuration → Debug
- Win32 seç → Build
- Çıkan discord_rpc.lib dosyasını discord_rpc_d.lib olarak Extern\lib içine koy.
Böylece:
- Release derlerken → discord_rpc_r.lib bulunur
- Debug derlerken → discord_rpc_d.lib bulunur
Ve
sürüm uyumsuzluğu olmaz, çünkü hepsi VS2022 v143 ile derlenmiş olur.
Game projesinin linker ayarlarını da kontrol et
VS’de game projesine sağ tık →
Properties:
a) VC++ Directories
- Library Directories kısmında mutlaka Extern\lib klasörü olmalı.
Örnek:
$(SolutionDir)Extern\lib
b) Linker → Input → Additional Dependencies
Burada şunları görmelisin:
discord_rpc_r.lib
Eğer sen lib dosyasını farklı isimde ürettiysen (ör. discord_rpc.lib bırakıp adını değiştirmediysen):
- Ya lib’in adını kodun beklediği gibi discord_rpc_r.lib yap
- Ya da burada ismi discord_rpc.lib olarak değiştir
İsimler
birebir aynı olmak zorunda.
“Extern build etme” olayı aslında tam olarak bu
Whistle’ın dediği “extern’i build et” olayı şu demek:
- Game/db projesinin kullandığı tüm harici kütüphaneleri (DevIL, libthecore, discord_rpc vs.)
- Ayrı bir solution / project altında önce derliyorsun
- Bunlar Extern\lib klasöründe .lib olarak oluşuyor
- Game/db derlenirken bu .lib dosyalarına link oluyor
Yani sıralama:
- Extern (libs) build
- Sonra game/db build
Sen şu an 1. adımı atladığın için game aşamasında:
“discord_rpc_r.lib yok, açılamıyor”
diyor.
Özet (kısa reçete)
- Discord RPC kaynak projesini bul (Extern içinde büyük ihtimal).
- VS2022 ile aç → Win32 / Release olarak derle.
- Çıkan discord_rpc.lib dosyasını Extern\lib\discord_rpc_r.lib şeklinde yerleştir.
- Game projesinde Linker → Library path ve Additional Dependencies ayarlarını kontrol et.
- Sonra game’i tekrar build et.
Buna rağmen hâlâ hata alırsan:
- Hata satırını (LNKxxxx kodu ile birlikte)
- Kullandığın klasör yapısını (Extern\lib içinde neler var)
buraya yaz, sana birebir ona göre düzeltme yolu çizerim.