FreeBSD'de GCC'yi Yapılandırma Eğitimi

  • Bu eğitim, GCC12'nin FreeBSD'ye nasıl kurulacağını ve yapılandırılacağını, böylece Metin2 sunucu dosyaları için görev dosyaları için qc derleyicisi gibi belirli kütüphanelere ihtiyaç duyan uygulamalarla doğru şekilde çalışacağını gösterir.

    1. GCC12 Kurulumu

    GCC 12 ve ccache'i kurmak için aşağıdaki komutu çalıştırın:

    Kod
    pkg install gcc12 ccache

    Kurulumu kontrol edin:

    Kod
    gcc12 --version
    g++12 --version

    2. Kök kabuğunu yapılandırma

    FreeBSD'de, kök hesap genellikle tcsh kabuğunu kullanır. Varsayılan olarak GCC12 kullanmak için ortam değişkenlerini ve takma adları tanımlamamız gerekir.

    1. .cshrc dosyasını düzenleyin:

    Kod
    ee /root/.cshrc

    2. Sonuna şunu ekleyin:

    Kod
    # Config GCC12
    setenv CC gcc12
    setenv CXX g++12
    alias gcc gcc12
    alias g++ g++12

    3. Kaydedin ve çıkın (ee editöründe F10).

    4. Değişiklikleri uygulayın:

    Kod
    source /root/.cshrc

    Kontrol etmek:

    Kod
    gcc --version

    Dinamik kitaplıkları yapılandırma (libgcc_s.so.1)

    qc gibi bazı uygulamalar /usr/local/lib/gcc12 konumunda bulunan libgcc_s.so.1 kitaplığını gerektirir.

    Adım 1: ldconfig'i kullanma

    1. Yapılandırma dosyasını oluşturun:

    Kod
    mkdir -p /etc/ld-elf.so.conf.d
    
    echo "/usr/local/lib/gcc12" > /etc/ld-elf.so.conf.d/gcc12.conf

    2. Kütüphane önbelleğini yeniden yükleyin:

    Kod
    ldconfig -R

    Adım 2: /etc/rc.conf üzerinden kalıcı olarak

    ekleyin:

    Kod
    echo 'ldconfig_paths="/usr/local/lib/gcc12"' >> /etc/rc.conf
    ldconfig

    Adım 3: libmap.conf'u kullanma:

    libgcc_s.so.1'i yanlış konumda arayan belirli uygulamalar için:

    Kod
    ee /etc/libmap.conf

    Dosyaya ekle:

    Kod
    [qc]
    libgcc_s.so.1   /usr/local/lib/gcc12/libgcc_s.so.1

    Son kontrol

    PuTTY'de şunu yazın:

    Bu bir klasör örneğidir:

    cd /usr/j4m/game/share/locale/romania/quest

    Çalıştırın:

    Kod
    ldd ./qc

    Doğru sonuç şu şekilde olmalıdır:

    Kod
    ./qc:
        libstdc++.so.6 => /usr/local/lib/gcc12/libstdc++.so.6
        libm.so.5 => /lib/libm.so.5
        libgcc_s.so.1 => /usr/local/lib/gcc12/libgcc_s.so.1
        libc.so.7 => /lib/libc.so.7

    Dosyalar ee editörüyle nasıl kaydedilir:

    ESC'ye basın
    Ardından A tuşuna basın
    A tuşuna tekrar basın