SORU
2 Mayıs 2010, Pazar


CFLAGS vs CPPFLAGS

CFLAGS (veya C için CXXFLAGS ) CPPFLAGS bu ön işlemci tarafından kullanılır ise derleyici için, bunu anlıyorum.

Ama ben hala farkı anlayamıyorum.

İçerdiği başlık dosyasının yolunu belirtmek istiyorum #vardır çünkü ... #basit bir yönerge vardır, işlemcisi (CPPFLAGS) umurumda olan tek şey nedir?

Hangi şartlar altında derleyici vardır ekstra bir yol vermek gerekir mi?

Genel, basit ve gerekli başlık dosyaları bulursa içerir, neden şimdiye kadar hakkında söylenmesi gereken ekstra dizinleri içerir mi? Kullanım CFLAGS tüm nedir?

(Benim durumumda, ben aslında o bulduHer İKİSİ debu benim karışıklık ekler benim programı derlemek için izin... CFLAGS kullanabilirimYAAmacım (autoconf bağlamda en azından) gerçekleştirmek için CPPFLAGS. Ne veriyor?)

CEVAP
3 Mayıs 2010, PAZARTESİ


Örtülü bir C programı derlemek için bir kural olun

%.o:%.c
    $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<

$() sözdizimi değişkenler genişletir. CPPFLAGS CFLAGS hem derleyici çağrı olarak tanımlamak için hangi yolları kişisel zevk meselesi vardır. foo.c örneğin mevcut dizinde bir dosya

make foo.o CPPFLAGS="-I/usr/include"
make foo.o CFLAGS="-I/usr/include"

her ikisi de tam olarak aynı şekilde derleyici, yani arayacak

gcc -I/usr/include -c -o foo.o foo.c

İkisi arasında fark varsa bar.cpp sonra deneyin eğer aynı yolu dahil birden çok dil varsa, örneğin oyun haline geliyor

make bar.o CPPFLAGS="-I/usr/include"
make bar.o CFLAGS="-I/usr/include"

sonra derleme olacak

g   -I/usr/include -c -o bar.o bar.cpp
g   -c -o bar.o bar.cpp

C örtük kural olarak da CPPFLAGS değişken kullanır.

Bu fark size iyi bir rehber için kullanmak istiyorsanız, bayrak için kullanılacak Tüm diller koy CPPFLAGS eğer belirli bir dil koymak CFLAGS, CXXFLAGS vb. İkinci tür örnekler standart uyum veya uyarı bayrakları vardır - C derleyici için -std=c99 geçmek istemem!

Sonra makefile böyle bir şey ile karşılaşabilirsiniz

CPPFLAGS=-I/usr/include
CFLAGS=-std=c99
CXXFLAGS=-Weffc  

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Boiler Room

    Boiler Room

    10 Mayıs 2012
  • ELPRESADOR

    ELPRESADOR

    21 HAZİRAN 2008
  • eurotuner

    eurotuner

    6 Mart 2006

İLGİLİ SORU / CEVAPLAR