Aracılığıyla paylaş


Özel NMAKE makroları

NMAKE, çeşitli dosya adlarını ve komutları temsil eden birkaç özel makro sağlar. Bu makrolardan bazıları için kullanılanlardan biri önceden tanımlanmış çıkarım kurallarındadır. Tüm makrolar gibi, NMAKE tarafından sağlanan makrolar da büyük/küçük harfe duyarlıdır.

Dosya Adı Makroları

Dosya adı makroları, bağımlılıkta belirtilen dosya adları (diskteki tam dosya adı belirtimleri değil) olarak önceden tanımlanmıştır. Bu makroların çağrıldığında parantez içinde gösterilmesi gerekmezcl; yalnızca gösterildiği gibi bir $ belirtin.

Makro Anlamı
$@ Geçerli hedefin tam adı (yol, temel ad, uzantı) şu anda belirtildiği gibi.
$$@ Geçerli hedefin tam adı (yol, temel ad, uzantı) şu anda belirtildiği gibi. Yalnızca bağımlılıkta bağımlı olarak geçerlidir.
$* Geçerli hedefin yolu ve temel adı eksi dosya uzantısı.
$** Geçerli hedefin tüm bağımlıları.
$? Geçerli hedeften daha sonraki bir zaman damgasına sahip olan tüm bağımlılar.
$< Geçerli hedeften daha sonraki bir zaman damgasına sahip bağımlı dosya. Yalnızca çıkarım kurallarındaki komutlarda geçerlidir.

Önceden tanımlanmış dosya adı makrosunun bir bölümünü belirtmek için, bir makro değiştirici ekleyin vecldeğiştirilen makroyu parantez içinde açın.

Değiştirici Sonuçta elde edilen dosya adı bölümü
D Sürücü artı dizin
B Temel ad
F Temel ad ve uzantı
R Sürücü artı dizin artı temel ad

Özyineleme makroları

NMAKE'yi özyinelemeli olarak çağırmak için özyineleme makrolarını kullanın. Özyinelemeli oturumlar komut satırı ve ortam değişkeni makrolarını ve Tools.ini bilgilerini devralır. Derleme dosyası tanımlı çıkarım kurallarını veya .SUFFIXES ve .PRECIOUS belirtimlerini devralmıyorlar. Özyinelemeli NMAKE oturumuna makro geçirmenin üç yolu vardır:

  • Özyinelemeli çağrıdan önce komutuyla bir SET ortam değişkeni ayarlayın.
  • Özyinelemeli çağrı için komutta bir makro tanımlayın.
  • Veya içinde Tools.inibir makro tanımlayın.
Makro Açıklama
MAKE Başlangıçta NMAKE'yi çağırmak için kullanılan komut.

Makro, $(MAKE) yolunun tamamını nmake.exeverir.
MAKEDIR NMAKE çağrıldığında geçerli dizin.
MAKEFLAGS Şu anda etkin olan seçenekler. olarak /$(MAKEFLAGS)kullanın. Seçenek /F uded içindecldeğil.

Komut makroları ve seçenekler makroları

Komut makroları Microsoft ürünleri için önceden tanımlanmıştır. Seçenekler makroları bu ürünlerin seçeneklerini temsil eder ve varsayılan olarak tanımlanmamıştır. Her ikisi de önceden tanımlanmış çıkarım kurallarında kullanılır ve açıklama bloklarında veya kullanıcı tanımlı çıkarım kurallarında kullanılabilir. Komut makroları, komut satırının bir bölümünü veya tamamını temsil etmek için, uding seçeneklerindeclyeniden tanımlanabilir. Seçenekler makroları tanımsız bırakılırsa null dize oluşturur.

Araç Komut makro Farklı tanımlanmış Seçenekler makro
Makro Derleyicisi AS ml veya ml64 AFLAGS
C Derleyicisi CC cl CFLAGS
C++ Derleyicisi CPP cl CPPFLAGS
C++ Derleyicisi CXX cl CXXFLAGS
Resource Derleyicisi RC rc RFLAGS

Ortam değişkeni makroları

NMAKE, oturum başlamadan önce var olan ortam değişkenleri için makro tanımlarını devralır. İşletim sistemi ortamında bir değişken ayarlandıysa, bir NMAKE makrosunda kullanılabilir. Devralınan adlar uppercase'ye dönüştürülür. Devralma ön işlemeden önce gerçekleşir. Ortam değişkenlerinden devralınan makroların derleme dosyasında aynı ada sahip makroları geçersiz kılabilir hale getirmesine neden olmak için /E seçeneğini kullanın.

Ortam değişkeni makroları oturumda yeniden tanımlanabilir ve bu, karşılık gelen ortam değişkenini değiştirir. Ortam değişkenlerini SET komutuyla da değiştirebilirsiniz. Ancak bir oturumdaki ortam değişkenini değiştirmek için SET komutunun kullanılması ilgili makroyu değiştirmez.

Örnek:

PATH=$(PATH);\nonesuch

all:
    echo %%PATH%%

Bu örnekte, değişiklik PATH ilgili ortam değişkenini PATHdeğiştirir; yolunuz sonuna eklenir \nonesuch .

Ortam değişkeni, bir derleme dosyasında söz dizimsel olarak yanlış olabilecek bir dize olarak tanımlanırsa, makro oluşturulmaz ve uyarı oluşturulmaz. Bir değişkenin değeri dolar işareti ($) içeriyorsa, NMAKE bunu makro çağrısının başlangıcı olarak yorumlar. Makronun kullanılması beklenmeyen davranışlara neden olabilir.

Ayrıca bkz.

Makrolar ve NMAKE