Makefiles'a çok satırlı yorumlar nasıl eklenir


113

Makefiles içinde C sözdizimindeki gibi birden fazla satırı yorumlamanın bir yolu var mı /* */?


Hangi marka sürümünü kullanıyorsunuz?
egrunin

Yanıtlar:


152

Hayır, /* */makefiles içinde C-tarzı yorumlar gibisi yoktur . Başka birinin önerdiği gibi, satır devamlarını kullanarak çok satırlı bir yorum yapabilirsiniz. Örneğin:

# This is the first line of a comment \
and this is still part of the comment \
as is this, since I keep ending each line \
with a backslash character

Bununla birlikte, muhtemelen hata ayıklama nedenleriyle makefile'ınızın bir kısmını geçici olarak yorumlamak istediğinizi ve her satıra bir ters eğik çizgi eklemenin gerçekten pratik olmadığını düşünüyorum. GNU make kullanıyorsanız, ifeqyönergeyi kasıtlı olarak yanlış bir ifade ile kullanmanızı öneririm . Örneğin:

ifeq ("x","y")
# here's all your 'commented' makefile content...
endif

Umarım yardımcı olur.


3
Bir kuraldaki satırları "yorumlamak" istiyorsanız, ifeq, endif satırlarını girintilemeyin.
Simon Márton

13

Cevabın hayır olduğuna inanıyorum. Bulabildiğim tek yorum stili, her satır için # veya ilk satırı kaydırmak için \ tuşudur.


10

ifeqMake (1) 'de çok satırlı yorumlar yapmak için kullanma fikri hakkında bir not . Aşağıdakileri yazdığınız için pek iyi çalışmıyorlar:

ifeq (0,1)
    do not risk ifeq comments
    else trouble will find you
    ifeq is even worse
endif

İfeq ve endif arasındaki metin yine de make tarafından ayrıştırılacaktır, bu da o bölümde istediğinizi yazamayacağınız anlamına gelir. Ve eğer uzun bir yorum yazmak ve yorumda istediğinizi yazmak istiyorsanız (hepsi make için bir anlamı olan $ işaretleri, iki nokta üst üste ve daha fazlası dahil), o zaman her satırı yorumlamalısınız. Öyleyse neden ifeq... :)


Bu doğru değil. İfeq içindeki metnin tek "ayrıştırıcı" gmake işi bir endif aramaktır. Bunu ifeq içinde bazı sahte sözdizimleri olan bir makefile ile kolayca doğrulayabilirsiniz. İfeq içindeki koşul yanlış olarak değerlendirildiği sürece, gmake mutlu bir şekilde ifeq içindeki sözdizimi hatalarını yok sayacaktır.
Eric Melski

3
Bu doğru değil. Aşağıdaki örneği deneyin: ifeq (0, 1) riske atmayın ifeq açıklamaları aksi takdirde sorun sizi bulursa , satırın başındaki else , hatalara dönüşür. Yani başka , ifeq , ifneq ve muhtemelen diğer birçok semboller bazı problemlerin verecek bilmediğin.
Mark Veltzer

Bu makul bir nokta, ancak sözdizimsel hataların çoğu göz ardı edilecek.
Eric Melski

5
define BOGUS
lines
.....
endef

1
tahmin ifeqettiğim gibi aynı uyarılara tabi , ama benim için çalışıyor. Teşekkürler!
jcomeau_ictx

3

Tam olarak aradığınız şey değil, ruh olarak benzer. Bunun kabul edilen cevap olmasını beklemiyorum, ama belki birine yardımcı olabilir.

Makefile'lerinizi VIM'de düzenlediğinizi varsayarsak:
Hangi satırlara yorum yapmak istediğinize karar verin veya 'v' ile seçin.

Ardından s/^/#/, satırları yorumlamak
ve s/^#//geri döndürmek için normal ifadeyi kullanabilirsiniz.

--Notes--

  • Vim komut satırını açmak için :(iki nokta üst üste) tuşuna basın
  • Komutu sonraki 'n' satırına hazırlamak için şunu kullanın: .,+n
  • "V" kullanan bir örnek satır şuna benzer: '<,'>s/^/#/

2
Bunun yerine blok modunu kullanmak daha kolaydır. Yorum yapmak için ilk satırın başına gidin, ctrl-v, sonuna kadar aşağı ok, büyük I, #, kaçış. Yorumları silmek için: ctrl-v, sonuna kadar aşağı ok, x
brunch875

1

Emacs'de, yorum yapmak istediğiniz bölgeyi işaretleyebilir ve M-;(çalışır comment-dwim) vurabilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.