Özel derleme araçlarını belirtme

Özel derleme aracı, derleme sistemine belirli giriş dosyalarını oluşturmak için gereken bilgileri sağlar. Özel derleme aracı çalıştırılacak komutu, giriş dosyalarının listesini, komutu tarafından oluşturulan çıkış dosyalarının listesini ve aracın isteğe bağlı açıklamasını belirtir.

Özel derleme araçları ve özel derleme adımları hakkında genel bilgi için bkz . Özel Derleme Adımlarını ve Derleme Olaylarını Anlama.

Özel derleme aracı belirtmek için

  1. Projenin Özellik Sayfaları iletişim kutusunu açın. Daha fazla bilgi için bkz . Visual Studio'da C++ derleyicisi ve derleme özelliklerini ayarlama.

  2. Yapılandırma kutusunu etkinleştirmek için Yapılandırma Özellikleri'ni seçin. Yapılandırma kutusunda, özel derleme aracı belirtmek istediğiniz yapılandırmayı seçin.

  3. Çözüm Gezgini'da özel derleme aracının giriş dosyasını seçin.

    Özel Derleme Aracı klasörü görünmezse, seçtiğiniz dosyanın dosya uzantısı varsayılan bir araçla ilişkilendirilir. Örneğin, .c ve .cpp dosyalarının varsayılan aracı derleyicidir. Varsayılan araç ayarını geçersiz kılmak için Yapılandırma Özellikleri düğümündeki Genel klasöründeki Öğe Türü özelliğinde Özel Derleme Aracı'nı seçin. Uygula'yıseçtiğinizde Özel Derleme Aracı düğümü görüntülenir.

  4. Özel Derleme Aracı düğümündeki Genel klasöründe, özel derleme aracıyla ilişkili özellikleri belirtin:

    • Ek Bağımlılıklar'da, özel derleme aracının tanımlandığı dosyadan başka ek dosyaları belirtin (özel derleme aracıyla ilişkili dosya örtük olarak araç girişi olarak kabul edilir). Ek giriş dosyalarına sahip olmak, özel derleme aracı için bir gereksinim değildir. Birden fazla ek girişiniz varsa bunları noktalı virgülle ayırın.

      Ek Bağımlılıklar dosyasının tarihi giriş dosyasından sonraysa, özel derleme aracı çalıştırılır. Tüm Ek Bağımlılıklar dosyaları giriş dosyasından eskiyse ve giriş dosyası Outputs özellik dosyasından daha eskiyse, özel derleme aracı çalıştırılmaz.

      Örneğin, myInput.x dosyasını giriş olarak alan ve MyInput.cpp oluşturan özel bir derleme aracınız olduğunu ve MyInput.x dosyasının MyHeader.h adlı bir üst bilgi dosyası içerdiğini varsayalım. MyInput.x'e giriş bağımlılığı olarak MyHeader.h'yi belirtebilirsiniz ve derleme sistemi MyInput.x veya MyHeader.h ile ilgili olarak güncel olmadığında MyInput.cpp'yi oluşturur.

      Giriş bağımlılıkları, özel derleme araçlarınızın ihtiyacınız olan sırayla çalışmasını da sağlayabilir. Yukarıdaki örnekte, MyHeader.h dosyasının aslında özel bir derleme aracının çıktısı olduğunu varsayalım. MyHeader.h, MyInput.x'in bir bağımlılığı olduğundan, derleme sistemi myInput.x üzerinde özel derleme aracını çalıştırmadan önce Myheader.h'yi oluşturur.

    • Komut Satırı'nda, komut isteminde belirtir gibi bir komut belirtin. Geçerli bir komut veya toplu iş dosyası ve gerekli giriş veya çıkış dosyalarını belirtin. Sonraki tüm komutların yürütülmesini sağlamak için toplu iş dosyasının adından önce batch komutunu çağır komutunu belirtin.

      BIRDEN çok giriş ve çıkış dosyası MSBuild makrolarıyla sembolik olarak belirtilebilir. Dosyaların konumunu veya dosya kümelerinin adlarını belirtme hakkında bilgi için bkz . Derleme komutları ve özellikleri için ortak makrolar.

      '%' karakteri MSBuild tarafından ayrıldığından, bir ortam değişkeni belirtirseniz her % kaçış karakterini %25 onaltılık kaçış dizisiyle değiştirin. Örneğin, %WINDIR% değerini %25WINDIR%25 ile değiştirin. MSBuild, ortam değişkenine % erişmeden önce her %25 sırasını karakteriyle değiştirir.

    • Açıklama alanına bu özel derleme aracı hakkında açıklayıcı bir ileti girin. Derleme sistemi bu aracı işlediğinde ileti Çıkış penceresine yazdırılır.

    • Çıkışlar'da çıkış dosyasının adını belirtin. Bu gerekli bir girdidir; bu özellik için bir değer olmadan, özel derleme aracı çalışmaz. Özel derleme aracının birden fazla çıkışı varsa, dosya adlarını noktalı virgülle ayırın.

      Çıktı dosyasının adı, Komut Satırı özelliğinde belirtilen adla aynı olmalıdır. Proje derleme sistemi dosyayı arar ve tarihini denetler. Çıkış dosyası giriş dosyasından daha eskiyse veya çıkış dosyası bulunamazsa, özel derleme aracı çalıştırılır. Tüm Ek Bağımlılıklar dosyaları giriş dosyasından eskiyse ve giriş dosyası Outputs özelliğinde belirtilen dosyadan daha eskiyse, özel derleme aracı çalıştırılmaz.

Derleme sisteminin özel derleme aracı tarafından oluşturulan bir çıkış dosyası üzerinde çalıştırılmasını istiyorsanız, bunu projeye el ile eklemeniz gerekir. Özel derleme aracı, derleme sırasında dosyayı güncelleştirir.

Örnek

Projenize parser.l adlı bir dosya eklemek istediğinizi varsayalım. Yürütülebilir yolunuz üzerinde lexer.exe adlı sözcük temelli bir çözümleyiciniz var. Aynı temel ada (parser.c) sahip bir .c dosyası oluşturmak için parser.l dosyasını işlemek için bunu kullanmak istiyorsunuz.

İlk olarak, parser.l ve parser.c dosyasını projeye ekleyin. Dosyalar henüz yoksa, dosyalara bir başvuru ekleyin. parser.l için özel bir derleme aracı oluşturun ve Commands özelliğine aşağıdakileri girin:

lexer %(FullPath) .%(Dosya adı).c

Bu komut, parser.l üzerinde sözcük çözümleyicisini çalıştırır ve parser.c dosyasını proje dizinine aktarır.

Outputs özelliğine aşağıdakileri girin:

.%(Dosya adı).c

Projeyi oluşturduğunuzda, derleme sistemi parser.l ve parser.c'nin zaman damgalarını karşılaştırır. Ayrıştırıcı.l daha yeniyse veya ayrıştırıcı.c yoksa, derleme sistemi parser.c dosyasını güncel hale getirmek için Komut Satırı özelliğinin değerini çalıştırır. Parser.c de projeye eklendiğinden, derleme sistemi parser.c dosyasını derler.

Ayrıca bkz.

Derleme komutları ve özellikleri için genel makrolar
Derleme Özelleştirmeleri Sorunlarını Giderme