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 önceden tanımlanmış as dosya adlarıdır (diskteki tam dosya adı belirtimleri değildir). Bu makroların çağrıldığında parantez içine alınması gerekmez; yalnızca gösterileni $as belirtin.

Makro Anlamı
$@ Geçerli hedefin tam adı (yol, temel ad, uzantı), as şu anda belirtilmiş.
$$@ Geçerli hedefin tam adı (yol, temel ad, uzantı), as şu anda belirtilmiş. Yalnızca as bir bağımlılıkta bağımlı olan geçerli.
$* 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 ve değiştirilen makroyu parantez içine alı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 Tanım
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. as/$(MAKEFLAGS) adresini kullanın. Seçenek /F dahil değildir.

Komut makroları ve seçenek 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ı, seçenekler de dahil olmak üzere bir komut satırının bir bölümünü veya tamamını temsil etmek için yeniden tanımlanabilir. Seçenekler makroları tanımsız bırakılırsa null dize oluşturur.

Araç Komut makro Tanımlanan as 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
Kaynak 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 as . Devralınan adlar büyük harfe 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.

Örneğin:

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 tanımlandıysa as , makro oluşturulmaz ve uyarı oluşturulmaz. Bir değişkenin değeri dolar işareti ($) içeriyorsa, NMAKE bunu as 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