SORU
24 ŞUBAT 2012, Cuma


Nasıl Windows Çınlama derlemek için

Çınlama Windows üzerinde çalışan almak için bir yol bulmaya çalışıyorum ama sorun yaşıyorum. Başarıyla derlemek için İse o olsun, ama bir programı derlemeye çalıştığımda standart başlıkları hataları var.

rubenvb's excellent prebuilt versions of clang, farkındayım ama kendim derlemek istiyorum. Ben de çok iyi Windows desteği henüz yok " dedi çınlama hakkında GoingNative görüşmeler dinliyordu. Nasıl çınlama Windows üzerinde çalışır hale getirebilir miyim?

CEVAP
24 ŞUBAT 2012, Cuma


Aşağıdaki yöntem Windows üzerinde C çınlama derlemek için Mysticial ve diğerleri tarafından doğrulanmış 7 ve kullandım

  1. Ve MinGW (C yüklediğinizden emin olun derleyici) yükleyin ve senin YOLUNDA bin klasörüne (MinGW 4.6.1 ve 4.6.2 ile başarılı bir şekilde başka bir bilgisayar üzerinde test)
  2. YOLDA Python olduğundan emin olun3Ben 2.7)
  3. (İsteğe bağlı: PATH (5.14.2 64-bit ActivePerl kullanılan)) Perl olduğundan emin Olun
  4. CMake alın ve YOLDA koymak
  5. LLVM downloads page gidin ve Çınlama kaynak kodu ile birlikte 3.0 LLVM kaynak kodu indirin. SVN kod alamadım, MinGW başlıkları ile çalışmıyor.
  6. Kaynak kodları özü; bir klasör llvm-3.0 adlı llvm kaynağı vardı.benim masaüstünde src
  7. Koy çınlama kaynağı doğrudan bir klasör adı "tin" (çağrılmalıdır bu tam olarak veya inşa llvm ama ses çıkarmaz almak inşa) "araçlar" klasörü içindeki llvm kaynak klasörü, bu dilemeli dizinleri benziyor:
    • llvm kaynak
      • autoconf klasör
      • ...
      • Araçlar Klasör
        • ...
        • çınlama klasör
          • bağlamaları klasör
          • ...
          • Dosya Makefile
          • ...
        • ...
      • ...
  8. Bir klasör "" llvm kaynak klasörü ile aynı dizinde . build adında olun
  9. Bir komut satırı açın ve build klasörü içine cd
  10. Komutu cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release ..\llvm-3.0.src çalıştırın

    • (son argüman olarak llvm kaynağı olan bir klasörü (ve araçları çınlama kaynağı/çınlama alt)) göreceli yoludur

    • Bu bir eşdeğer "" komutu, makefile ve her şeyi inşa klasör . içinde oluşturulacak yapılandırma yapacak

    • Bu birkaç dakika sürer
  11. Komutu mingw32-make çalıştırın

    • Bu llvm ve çınlama derlenir ve çınlama yürütülebilir dosyaları oluşturmak/bin klasöründe oluşturulur
    • Bu muhtemelen uzun bir zaman alacak. Olabilir iyi yakın tüm diğer programlar için bilgisayarınızı konsantre ol, ve bu yüzden onlar karışma uzun derleme işlemi gibi koyarak bir kilit bir klasör derleyici yazmak için (bana da oldu İşte). Ben bile oluşturulan dosyaları tarama şekilde elde etmeye çalışmak olmasın diye antivirüs ve güvenlik duvarı yazılımı devre dışı bırakın.

Bunu test için zaman

  1. Bir oluşturun .bu cpp dosyası/bin klasörüne (hello.cpp kullanacağım) oluşturmak. Standart bir kütüphane Başlığı yolları ve kütüphaneler çalışıyoruz vardır emin olmak için kullanın. Çok basit bir program ile başlayın.

    İle başladım (:

    #include <iostream>
    
    int main() {
        std::cout << "hi";
    }
    

    )

  2. Komutu clang hello.cpp -std=c 0x -I"C:\MinGW\lib\gcc\mingw32\4.6.1\include\c " -I"C:\MinGW\lib\gcc\mingw32\4.6.1\include\c \mingw32" -Lc:/mingw/bin/../lib/gcc/mingw32/4.6.1 -Lc:/mingw/bin/../lib/gcc -Lc:/mingw/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/lib -Lc:/mingw/bin/../lib/gcc/mingw32/4.6.1/../../.. -L/mingw/lib -lstdc -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt çalıştırın

    (-L kitaplıkları aramak için bir dizin belirtir ve -l bağlantı kitaplığı)belirtir (Yoksa MinGW yüklü aynı yolu yaptım, bulabileceksin yolları ile komut "g somefile.cpp -v" g sızıntısı onun cesareti hakkında ne seçenekleri kullanarak yolları kitaplık ve kütüphane dosyaları ve diğer her şey -L ve-l seçenekleri için çıkış sonlarına arama. Bu farkında olun .-L harfi ile serpiştirilmiş dosya adları o. Çınlama gerçekten ve g çıktı), bu yapıştırılan kopyaladık g aynı seçenekleri çok kullanır

    Bu programı derleyip dosya adında bir bir gösterecek.dışarı

  3. yeniden adlandırma.a.exe peki ya, her neyse

  4. Çalıştır .exe
  5. Programı çalıştırmak gerekir.

Çınlama (3.0) hala Windows (eğer bu sorunlar da linux üzerinde ise bilmiyorum) bazı sorunları var. Örneğin,- std=c 0 x ile bir lambda çınlama desteklemiyor) derleme ve tanı bir hata kaza yaymak için çınlama neden olur. (Ben bilinçli üzerindeki LLVM IRC bu çünkü çınlama uygular ayrıştırma için Lambda ancak semantik analizi, hangi aşamada hangi çöker (çünkü unuttular devre dışı bırakmak için ayrıştırma Lambda için 3.0 sürüm), ve onlar zaten biliyor bu hata)

Ayrıca, ünlü Mysticial lütfen bu kılavuzu test etmek için kabul etti ve onun test sırasında bazı gözlemler yaptı:

  1. Windows başlıkları çalışmıyor gibi görünüyor.
  2. Şu anda sadece 32-bit için çalışıyor.
  3. 64-bit iyi derler, ama bir araya gelmeyecek.
  4. SSE muhtemelen iyidir. ([Mysticial olmadı] 32-bit olsa da.) üzerinde bir çalışma SSE test

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Evan Coury

    Evan Coury

    29 NİSAN 2007
  • UKF

    UKF

    2 Aralık 2009
  • Whizzpopping

    Whizzpopping

    10 Kasım 2005