Yardım game source c++20 güncellemesi nasil yapiliyor?

  • Konuyu açan Konuyu açan TheAdmin33
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 9
  • Gösterim Gösterim 164
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

TheAdmin33

Ah, bu şarkıların gözü kör olsun
Geliştirici
Yardımsever Üye
Usta Üye
Editör
Mesaj
1.129
Çözümler
61
Beğeni
3.300
Puan
1.859
Ticaret Puanı
0
hep clienti c++20 ye güncellemekle ilgili konular var, game source c++20 güncellemesi nasil yapiliyor bilen varsa anlatabilir mi? (şuanda c++11)

Linkleri görebilmek için giriş yap veya kayıt ol.
 
martysama 5.8 de c++20 kullanmış ama bu videodakileri yapmamış. Diğer fileslarada bakındım herkez farklı bir şey yapmış kafam karıştı :alala:
 
martysama 5.8 de c++20 kullanmış ama bu videodakileri yapmamış. Diğer fileslarada bakındım herkez farklı bir şey yapmış kafam karıştı :alala:
her yiğidin yoğurt yiyişi farklıdır. sen video yok dedin ben de bunu attım :D farklı filesler de de farklı şekilde yükseltilmiş vardır elbet seçmek sana kalmış
 
Peki diyelim yükselttik eski sistmler sıkıntı

hepsi aynı amacı yapıyorsa niye farklı yükseltme şekilleri var ki
mesela türkiyede anıtkabire giden binlerce yol var niye bir sürü farklı yol var? her yolun gidişi kolay olanı var zor olanı var hepsi bir şekilde amaca hizmet ediyor. gidiş yolunu seçmek ise şöföre kalmış.
 
Konuyla alakalı değil ama, okul zamanında c# yazarken hocamızın dedikleri geldi aklıma. Herkesin kod yazma mantığı işlevi kendisine özel zamanla şekilleniyo demişti. Mesela ben uzatmasını seviyorum arkadaşım kısa kısa kod yazarak aynı sonuca ulaşıyor. Matematikteki gibi 1 problemin 1den fazla çözümü olabiliyo o gibi farklı kodlar yazıyoduk ama işlevi aynıydı. Burdaki durumda böyle sanırım. İşlev olarak c++20 de derleniyolar ama kullanılan terimler farklı yada birisi uzatarak yazmış diğeri kısaltmış.

Örnek doğru sayılırmı bilmiyorum ama aklıma hızlıca gelen bir örnekti anlamn adına.

Mesela sayıların pozitif yada negatif olması durumunu kontrol ettirelim.

Kısaltılmış kod :

C++:
Genişlet Daralt Kopyala
#include <iostream>

int main() {
    int number = -5;

    std::cout << (number > 0 ? "Pozitif" : "Negatif") << std::endl;

    return 0;
}

Farklı bir kod ama uzatılmış kod bloğu :

C++:
Genişlet Daralt Kopyala
#include <iostream>

int main() {
    int number = -5;

    if (number > 0) {
        std::cout << "Pozitif" << std::endl;
    } else {
        std::cout << "Negatif" << std::endl;
    }

    return 0;
}
 
Ben basit bir şey sanmıştım, 2-3 satır kod hata vermesin diye bununla uğraşamıcam kodu c++11 e uyarladım öyle kullanacam.
 
hocam ilk olarak güncel kütüphaneleri edinin eğer hala yapacaksanız sonrasında gcc10 c++20 ye source kodlarınızı çekebilirsiniz aslında basit çok zor bir yöntem değil aslında whistle nin gcc güncelleme diye bir videosu vardı youtubede ama ilk önce tabi dediğim gibi extern bölümünü güncellemelisiniz ayrıca metin2 için bana göre c++17 nin üstüne çıkmaya gerek yok
 
Öncelikle build makinanıza hangi derleyiciyi kullanacaksanız onun son sürümünü kurun, örnek olarak GCC diyelim, 14.2 versiyonunu kurun. Oyun dosyalarındaki (anlatımı serverside için yapıyorum) tüm makefile dosyalarını açıp g++ veya gcc olan yerleri g++14 veya gcc14 olarak değiştirin, ayrıca Flagları da ayarlamanız lazım, onun için de örnek olarak kendi game makefile dosyamdan örnek vereyim;

Makefile:
Genişlet Daralt Kopyala
# Dev Flags (Development Version - DEBUG)
CFLAGS = -Wall -Wextra -D_THREAD_SAFE -m32 -O0 -ggdb3 -fexceptions -std=c++23 -pipe -fstack-protector-all -static-libgcc -static-libstdc++

Bunun ardından GCC sürümünü arttırdıktan sonra mesela örnek veriyorum şuan sürümünüz GCC 4.9 ve tüm warningleri fixlediniz, bu bahsettiğim değişikliği yaptıktan sonra en az 300'den fazla yeni warning çıkacaktır tahmini olarak, kodun tam olarak bekleneni vermesi için bunları çözmenizi tavsiye ederim (unused parameter şeklinde bir uyarıyla çok fazla karşılaşacaksınız, nasıl olsa kullanılmıyor diye hepsini kaldırmaya kalkmayın, bazıları yerinde durmalı, onlar adına uyarıları engellemek için [[maybe_unused]] kullanabilirsiniz), eğer uğraşmayacağım derseniz flaglara -w ekler işin içinden sıyrılırsınız (asla tavsiye etmem), bunların haricinde yeni C++ standartlarında kullanıma geçtiğiniz zaman, eski sürümde sıkıntı çıkartmayan bir çok kod bloğu size sorun yaşatmaya başlayacak, bazılarını komple yeniden, yeni standartlarla yazmanız gerekiyor, bazıları derleme esnasında hata veriyor onları zaten çözmeye mecbursunuz, bazıları da derlenirken hiçbir hata vermemesine rağmen oyunun içinde sıkıntı yaratabiliyor, örnek vermek gerekirse aklıma ilk olarak CancelServerTimers fonksiyonu geldi, bunun gibi şeyler.

Yani bunu yapmak istiyorsanız iyi bir test sürecine, vakte ve bir miktar C++ bilgisine ihtiyacınız var, sevgiler.
 
Geri
Üst