Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi öykünücüsü veya MAC OS çevrimiçi öykünücüsü gibi birden çok ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen cpp-5 komutudur.
Program:
ADI
cpp - C Ön İşlemcisi
SİNOPSİS
bpp [-Dmakro[=tanım]...] [-Umakro]
[-Idir...] [-Alıntı yaparımdir...]
[-Wuyarmak...]
[-M|-MM] [-MG] [-MF Dosya]
[-MP] [-MQ hedef...]
[-MT hedef...]
[-P] [-fno-çalışma-dizini]
[-x dil] [-std=standart]
dosyada dış dosya
Burada yalnızca en kullanışlı seçenekler listelenmiştir; geri kalanı için aşağıya bakın.
TANIM
C önişlemcisi, genellikle cpp, Bir makro işlemci tarafından otomatik olarak kullanılan
Derlemeden önce programınızı dönüştürmek için C derleyicisi. Makro denir
işlemci tanımlamanıza izin verdiği için makrolar, bunlar daha uzun süre için kısa kısaltmalardır.
yapılar.
C ön işlemcisinin yalnızca C, C++ ve Objective-C kaynak koduyla kullanılması amaçlanmıştır.
Geçmişte, genel bir metin işlemcisi olarak kötüye kullanıldı. Hangi girişte boğulacak
C'nin sözcük kurallarına uymaz. Örneğin, kesme işaretleri şu şekilde yorumlanacaktır:
karakter sabitlerinin başlangıcı ve hatalara neden olur. Ayrıca, ona güvenemezsin
C-ailesi dilleri için önemli olmayan girdinin özelliklerini korumak.
Bir Makefile önceden işlenmişse, tüm sabit sekmeler kaldırılacak ve Makefile
çalışmıyor
Bunu söyledikten sonra, genellikle C olmayan şeylerde cpp kullanmaktan kurtulabilirsiniz. Diğer
Algol-ish programlama dilleri genellikle güvenlidir (Pascal, Ada, vb.)
Dikkat. -geleneksel-cpp modu daha fazla beyaz alanı korur ve aksi takdirde daha fazla
izin verici. Sorunların çoğu, C veya C++ stili yorumlar yazarak önlenebilir.
ana dilde yorumlar yerine ve makroları basit tutmak.
Mümkün olan her yerde, yazdığınız dile uygun bir önişlemci kullanmalısınız.
içinde. GNU derleyicisinin modern versiyonları makro olanaklara sahiptir. En yüksek seviye
programlama dillerinin kendi koşullu derleme ve dahil etme mekanizmaları vardır. Eğer
diğerleri başarısız olursa, GNU M4 gibi gerçek bir genel metin işlemcisini deneyin.
C önişlemcileri bazı ayrıntılarda farklılık gösterir. Bu kılavuz, GNU C önişlemcisini anlatmaktadır.
ISO Standardı C'nin özelliklerinin küçük bir üst kümesini sağlar. Varsayılan modunda, GNU
C önişlemcisi standardın gerektirdiği birkaç şeyi yapmaz. bunlar özellikler
nadiren kullanılan ve bir kelimenin anlamında şaşırtıcı değişikliklere neden olabilen
onları beklemeyen bir program. Sıkı ISO Standardı C elde etmek için,
-std = c90, -std = c99 or -std = c11 seçenekleri, standardın hangi versiyonuna bağlı olarak
istek. Tüm zorunlu teşhisleri almak için şunu da kullanmalısınız: - bilgiçlik.
Bu kılavuz, ISO ön işlemcisinin davranışını açıklar. karşılıksız en aza indirmek için
ISO önişlemcisinin davranışının geleneksel ile çakışmadığı farklılıklar
anlambilim, geleneksel önişlemci aynı şekilde davranmalıdır. Çeşitli
var olan farklılıklar bölümünde detaylandırılmıştır. Geleneksel Moda.
Açıklık sağlamak için, aksi belirtilmedikçe, referanslar CPP bu kılavuzda GNU CPP'ye bakın.
SEÇENEKLER
C önişlemcisi, argüman olarak iki dosya adı bekler, dosyada ve dış dosya.
önişlemci okur dosyada birlikte belirttiği diğer dosyalarla birlikte #Dahil etmek. Herşey
birleştirilmiş girdi dosyaları tarafından üretilen çıktı, dış dosya.
Ya da dosyada or dış dosya olabilir -gibi dosyada standart girdiden okumak anlamına gelir ve
as dış dosya standart çıktıya yazmak anlamına gelir. Ayrıca, herhangi bir dosya atlanırsa, bunun anlamı
sanki aynı - bu dosya için belirtilmişti.
Aksi belirtilmedikçe veya seçenek şu şekilde bitiyorsa: =, bir argüman alan tüm seçenekler
bu argümanın seçeneğin hemen ardından veya arasında bir boşluk bırakarak görünmesini sağlayın.
seçenek ve argüman: -ifoo ve -I foo aynı etkiye sahip.
Birçok seçeneğin çok harfli adları vardır; bu nedenle birden fazla tek harfli seçenek değil be
gruplandırılmış: -dM çok farklı -d -M.
-D isim
önceden tanımla isim tanım 1 ile bir makro olarak.
-D isim=tanım
İçeriği tanım sırasında göründükleri gibi belirtilmiş ve işlenmiştir.
çeviri aşaması üç #tanımlamak direktif. Özellikle, tanım şu şekilde olacaktır:
gömülü yeni satır karakterleri tarafından kesildi.
Önişlemciyi bir kabuktan veya kabuk benzeri bir programdan çağırıyorsanız, ihtiyacınız olabilir.
boşluklar gibi karakterleri korumak için kabuğun alıntı sözdizimini kullanmak için
kabuk sözdiziminde anlam.
Komut satırında fonksiyon benzeri bir makro tanımlamak istiyorsanız, argümanını yazın.
(varsa) eşittir işaretinden önce parantez içinde listeleyin. parantezler
çoğu kabuk için anlamlıdır, bu nedenle seçeneği alıntılamanız gerekir. İle birlikte sh ve csh,
-NS'isim(argümanlar...)=tanım' çalışır.
-D ve -U seçenekler komut satırında verildikleri sırayla işlenir. Tüm
-ikrolar dosya ve -Dahil etmek dosya sonuçta seçenekler işleniyor -D ve -U seçenekleri.
-U isim
Herhangi bir önceki tanımını iptal et isim, yerleşik veya bir ile sağlanan -D seçeneği.
-undef
Herhangi bir sisteme özel veya GCC'ye özgü makroları önceden tanımlamayın. Standart önceden tanımlanmış
makrolar tanımlı kalır.
-I dir
dizini ekle dir başlık dosyaları için aranacak dizinler listesine.
tarafından adlandırılan dizinler -I standart sistem dizinleri içermeden önce aranır.
eğer dizin dir standart bir sistem dizin içerir, seçenek yoksayılır
sistem dizinleri için varsayılan arama sırasının ve özel muamelenin
sistem üstbilgileri yenilmez. Eğer dir "=" ile başlar, ardından "=" olur
sysroot öneki ile değiştirildi; görmek --sistem kökü ve -isysroot.
-o dosya
çıktıyı şuraya yaz: dosya. Bu belirtmekle aynı dosya ikinci seçenek olmayan olarak
argüman cpp. gcc ikinci bir seçenek olmayan argümanın farklı bir yorumuna sahiptir,
bu yüzden kullanmalısın -o çıktı dosyasını belirtmek için.
-Duvar
Normal kod için istenen tüm isteğe bağlı uyarıları açar. şu anda bu
is -Wyorum, -Wtrigraflar, -Wmultichar ve bir tamsayı promosyonu hakkında bir uyarı
"#if" ifadelerinde işaret değişikliği. Önişlemcinin uyarılarının çoğunun
varsayılan olarak açıktır ve bunları kontrol etme seçeneği yoktur.
-Wyorum
-Yorumlar
Yorum başlatma dizisi olduğunda uyar /* bir /* yorum yapın veya ne zaman bir
ters eğik çizgi-yeni satır görünür // Yorum. (Her iki form da aynı etkiye sahiptir.)
-Wtrigraflar
Yorumlardaki çoğu trigraf programın anlamını etkileyemez. Ancak, bir
kaçan bir yeni satır oluşturacak trigraf (??/ bir satırın sonunda)
yorumun başladığı veya bittiği yeri değiştirme. Bu nedenle, yalnızca oluşturulacak trigraflar
kaçan yeni satırlar, bir yorumun içinde uyarılar üretir.
Bu seçenek şu şekilde ima edilir: -Duvar. Eğer -Duvar verilmedi, bu seçenek hala etkin
trigraflar etkinleştirilmedikçe. Uyarılar olmadan trigraf dönüşümü elde etmek için, ancak
öteki -Duvar uyarılar, kullanım -trigraflar -Duvar -Wno-trigraflar.
-Geleneksel
Geleneksel ve ISO C'de farklı davranan belirli yapılar hakkında uyarın.
geleneksel C eşdeğeri olmayan ve sorunlu olan ISO C yapıları hakkında uyarın
kaçınılması gereken yapılardır.
-Wundef
Bir dosyada makro olmayan bir tanımlayıcı ile karşılaşıldığında uyar. #Eğer , direktif
dışında tanımlı. Bu tür tanımlayıcılar sıfır ile değiştirilir.
-Wunused-makrolar
Kullanılmayan ana dosyada tanımlanan makrolar hakkında uyarın. bir makro Kullanılmış Eğer öyleyse
en az bir kez genişletildi veya varlığı test edildi. Önişlemci ayrıca şu durumlarda uyarı verir:
makro, yeniden tanımlandığı veya tanımlanmadığı sırada kullanılmamıştır.
Yerleşik makrolar, komut satırında tanımlanan makrolar ve içerme öğesinde tanımlanan makrolar
dosyalar hakkında uyarı yapılmaz.
Not: Bir makro gerçekten kullanılıyorsa, ancak yalnızca atlanan koşullu bloklarda kullanılıyorsa, o zaman
CPP bunu kullanılmamış olarak bildirecektir. Böyle bir durumda uyarıdan kaçınmak için,
makronun tanımının kapsamı, örneğin onu ilk atlanana taşıyarak
engellemek. Alternatif olarak, aşağıdaki gibi bir yapay kullanım sağlayabilirsiniz:
#if tanımlı the_macro_causing_the_warning
#endif
-Wendif-etiketleri
ne zaman uyarsa #else ya da #endif metin takip eder. Bu genellikle olur
formun kodu
#eğer FOO
Kendi ID’n ile mağazalarını oluştur
#else FOO
Kendi ID’n ile mağazalarını oluştur
#endif FOO
İkinci ve üçüncü "FOO" yorumlarda olmalıdır, ancak genellikle eski programlarda değildir.
Bu uyarı varsayılan olarak açıktır.
-Whata
Tüm uyarıları zor hatalara dönüştürün. Uyarıları tetikleyen kaynak kodu
reddedildi.
-Wsystem-başlıkları
Sistem başlıklarında kod için uyarılar yayınlayın. Bunlar normalde bulmakta yardımcı olmazlar.
kendi kodunuzdaki hatalar, bu nedenle bastırılır. Sistemden siz sorumluysanız
kütüphane, onları görmek isteyebilirsiniz.
-w GNU CPP'nin varsayılan olarak verdiği uyarılar da dahil olmak üzere tüm uyarıları bastırın.
- bilgiçlik
C standardında listelenen tüm zorunlu teşhisleri yayınlayın. Bazıları kaldı
zararsız kodda sık sık tetikledikleri için varsayılan olarak.
-pedantik-hatalar
Tüm zorunlu tanılamaları yayınlayın ve tüm zorunlu tanılamaları hatalara dönüştürün.
Bu, GCC'nin yayınlamadığı zorunlu teşhisleri içerir. - bilgiçlik ama davranır
uyarılar.
-M Ön işlemenin sonucunu çıkarmak yerine, aşağıdakilere uygun bir kural çıktısı alın: yapmak
ana kaynak dosyanın bağımlılıklarını açıklayan. Önişlemci bir çıktı verir
yapmak o kaynak dosya için nesne dosya adını, iki nokta üst üste ve adları içeren kural
gelenler de dahil olmak üzere dahil edilen tüm dosyaların -Dahil etmek or -ikrolar komut-
satır seçenekleri.
Açıkça belirtilmedikçe (ile -MT or -MQ), nesne dosya adı şunlardan oluşur:
nesne dosya soneki ile değiştirilen herhangi bir sonek ve herhangi bir son ek ile kaynak dosyanın adı
önde gelen dizin parçaları kaldırıldı. Dahil edilen çok sayıda dosya varsa, kural şudur:
kullanarak birkaç satıra bölün \-Yeni hat. Kuralın komutları yoktur.
Bu seçenek, önişlemcinin aşağıdaki gibi hata ayıklama çıktısını bastırmaz. -dM. Kaçınmak
bu tür hata ayıklama çıktılarını bağımlılık kurallarıyla karıştırmak, açıkça belirtmeniz gereken
bağımlılık çıktı dosyası ile -MFveya gibi bir ortam değişkeni kullanın
DEPENDENCECIES_OUTPUT. Hata ayıklama çıktısı, normal çıktı akışına şu şekilde gönderilmeye devam edecek:
Normal.
Geçen -M sürücüye ima eder -E, ve örtük bir şekilde uyarıları bastırır -w.
-MM Facebok sayfasını beğenin : -M ancak sistem başlık dizinlerinde bulunan başlık dosyalarından bahsetmeyin,
ne de doğrudan veya dolaylı olarak böyle bir başlıktan dahil edilen başlık dosyaları.
Bu, açılı ayraç veya çift tırnak seçiminin bir #Dahil etmek
direktif kendi başına bu başlığın görünüp görünmeyeceğini belirlemez. -MM
bağımlılık çıktısı Bu, GCC 3.0 sürümlerinden anlambilimde küçük bir değişikliktir ve
daha erken.
-MF dosya
Ile kullanıldığında -M or -MM, bağımlılıkların yazılacağı dosyayı belirtir. Eğer hayırsa -MF
anahtar verildiğinde, önişlemci kuralları göndereceği yere gönderir.
önceden işlenmiş çıktı
Sürücü seçenekleriyle kullanıldığında -OS or -MMD, -MF varsayılan bağımlılığı geçersiz kılar
çıktı dosyası.
-MG gibi bir seçenekle birlikte -M bağımlılık oluşturma isteği, -MG varsayar
eksik başlık dosyaları oluşturulan dosyalardır ve bunları bağımlılık listesine ekler.
bir hata yükseltiyor. Bağımlılık dosya adı doğrudan "#include" öğesinden alınır
herhangi bir yol eklemeden yönerge. -MG ayrıca önceden işlenmiş çıktıyı bastırır.
eksik başlık dosyası bunu işe yaramaz hale getirir.
Bu özellik, makefile'lerin otomatik olarak güncellenmesinde kullanılır.
-MP Bu seçenek, CPP'ye aşağıdakiler dışındaki her bağımlılık için sahte bir hedef eklemesini söyler.
ana dosya, her birinin hiçbir şeye bağlı olmamasına neden olur. Bu kukla kurallar hatalara karşı çalışır
yapmak üstbilgi dosyalarını güncellemeden kaldırırsanız verir Makefile eşleştirmek.
Bu tipik çıktıdır:
test.o: test.c test.h
test.h:
-MT hedef
Bağımlılık oluşturma tarafından yayılan kuralın hedefini değiştirin. Varsayılan olarak CPP
ana girdi dosyasının adı, herhangi bir dizin bileşenini ve herhangi bir dosya son ekini siler
gibi .c, ve platformun olağan nesne son ekini ekler. Sonuç hedeftir.
An -MT seçeneği, hedefi tam olarak belirttiğiniz dize olacak şekilde ayarlayacaktır. Eğer istersen
birden fazla hedef, bunları tek bir argüman olarak belirtebilirsiniz. -MTveya birden çok
-MT seçenekleri.
Örneğin, -MT '$(objpfx)foo.o' verebilir
$(objpfx)foo.o: foo.c
-MQ hedef
Aynısı -MT, ancak Make için özel olan herhangi bir karakterden alıntı yapar.
-MQ '$(objpfx)foo.o' verir
$$(objpfx)foo.o: foo.c
Varsayılan hedef, sanki birlikte verilmiş gibi otomatik olarak alıntılanır. -MQ.
-OS -OS eşdeğerdir -M -MF dosyabunun dışında -E ima edilmez. Sürücü
belirleyen dosya olup olmadığına bağlı olarak -o seçenek verilir. Eğer öyleyse, sürücü kendi
argüman ama bir sonek ile .d, aksi takdirde girdi dosyasının adını alır,
tüm dizin bileşenlerini ve son eki kaldırır ve bir .d soneki.
If -OS ile birlikte kullanılır -E, hiç -o anahtarı belirtmek için anlaşılır
bağımlılık çıktı dosyası, ancak kullanılmadan kullanılırsa -Eher biri -o belirtmek için anlaşılır
hedef nesne dosyası.
Dan beri -E ima edilmez, -OS olarak bir bağımlılık çıktı dosyası oluşturmak için kullanılabilir
derleme işleminin yan etkisi.
-MMD
Facebok sayfasını beğenin : -OS sistem başlık dosyalarından değil, yalnızca kullanıcı başlık dosyalarından bahsetmek dışında.
-x c
-x c ++
-x amaç-c
-x cpp ile montajcı
Kaynak dili belirtin: C, C++, Objective-C veya Assembly. Bunun alakası yok
standartlara uygunluk veya uzantılar ile; yalnızca hangi temel sözdiziminin kullanılacağını seçer
beklemek. Bu seçeneklerden hiçbirini vermezseniz, cpp dili
kaynak dosyanın uzantısı: .c, . Cc, .mya da .S. için diğer bazı yaygın uzantılar
C++ ve derleme de tanınır. cpp uzantıyı tanımıyorsa,
dosyayı C olarak ele alacak; bu en genel moddur.
Not: cpp'nin önceki sürümleri bir -dil her ikisini de seçen seçenek
dil ve standartlara uygunluk düzeyi. Bu seçenek kaldırıldı, çünkü
ile çelişiyor -l seçeneği.
-std=standart
-ansi
Kodun uyması gereken standardı belirtin. Şu anda CPP, C'yi biliyor
ve C++ standartları; diğerleri gelecekte eklenebilir.
standart şunlardan biri olabilir:
"c90"
"c89"
"iso9899: 1990"
1990'dan itibaren ISO C standardı. c90 bu sürümü için alışılmış kısayol
standart.
The -ansi seçenek eşdeğerdir -std = c90.
"iso9899: 199409"
1990 yılında değiştirilen 1994 C standardı.
"iso9899: 1999"
"c99"
"iso9899:199x"
"c9x"
Aralık 1999'da yayınlanan revize edilmiş ISO C standardı. Yayınlanmadan önce bu
C9X olarak biliniyordu.
"iso9899: 2011"
"c11"
"c1x"
Aralık 2011'da yayınlanan revize edilmiş ISO C standardı. Yayınlanmadan önce bu
C1X olarak biliniyordu.
"gnu90"
"gnu89"
1990 C standardı artı GNU uzantıları. Bu varsayılandır.
"gnu99"
"gnu9x"
1999 C standardı artı GNU uzantıları.
"gnu11"
"gnu1x"
2011 C standardı artı GNU uzantıları.
"c++98"
1998 ISO C++ standardı artı değişiklikler.
"gnu++98"
Aynı -std=c++98 artı GNU uzantıları. Bu, C++ kodu için varsayılandır.
-BEN- Dahil etme yolunu bölün. ile belirtilen herhangi bir dizin -I önce seçenekler -BEN- vardır
yalnızca "#include" ile istenen başlıklar arandıdosya""; onlar aranmaz
"#Dahil etmekdosya>". Ek dizinler ile belirtilirse -I seçeneklerinden sonra
-BEN-, bu dizinler herkes için aranır #Dahil etmek direktifler.
Ek olarak, -BEN- geçerli dosya dizininin dizininin kullanımını şu şekilde engeller:
"#include" için ilk arama dizinidosya"".
Bu seçenek kullanımdan kaldırıldı.
-nostdinc
Başlık dosyaları için standart sistem dizinlerini aramayın. Sadece dizinler
ile belirttiğiniz -I seçenekler (ve mevcut dosyanın dizini, eğer
uygun) aranır.
-nostdinc++
C++'a özgü standart dizinlerde başlık dosyalarını aramayın, ancak yine de
diğer standart dizinleri arayın. (Bu seçenek, C++'ı oluştururken kullanılır.
kütüphane.)
-Dahil etmek dosya
Süreç dosya sanki "#include "file"" birincil kaynağın ilk satırı olarak görünüyor
dosya. Ancak, aranan ilk dizin dosya önişlemci çalışıyor mu
rehber yerine of ana kaynak dosyayı içeren dizin. Bulunmazsa
orada, "#include "..."" arama zincirinin geri kalanında şu şekilde aranır:
Normal.
Birden fazla ise -Dahil etmek seçenekler verildiğinde, dosyalar bulundukları sıraya göre dahil edilmiştir.
komut satırında görünür.
-ikrolar dosya
Tıpkı -Dahil etmek, tarama ile üretilen herhangi bir çıktı dışında dosya Atıldı
uzak. Tanımladığı makrolar tanımlı kalır. Bu, tüm makroları edinmenizi sağlar.
bildirimlerini de işlemeden bir başlıktan.
tarafından belirtilen tüm dosyalar -ikrolar tarafından belirtilen tüm dosyalardan önce işlenir -Dahil etmek.
-dirafter dir
Ara dir başlık dosyaları için, ancak yapın sonra ile belirtilen tüm dizinler -I ve
standart sistem dizinleri tükendi. dir içeren bir sistem olarak kabul edilir
dizin. Eğer dir "=" ile başlar, ardından "=" sysroot ile değiştirilir
önek; görmek --sistem kökü ve -isysroot.
-iprefix önek
Belirtmek önek sonrakiler için ön ek olarak -iwithprefix seçenekler. önek ise
bir dizini temsil ediyorsa, finali eklemelisiniz /.
-iwithprefix dir
-iön eki ile dir
eklemek dir ile daha önce belirtilen önek için -iprefix, ve sonucu ekleyin
dizini içerme arama yoluna. -iön eki ile aynı yere koyar -I
istemek; -iwithprefix nereye koyar -dirafter olur.
-isysroot dir
Bu seçenek, tıpkı --sistem kökü seçeneği, ancak yalnızca başlık dosyaları için geçerlidir (hariç
Darwin, hem başlık dosyaları hem de kitaplıklar için geçerli olduğu hedefler). Bkz.
--sistem kökü Daha fazla bilgi için seçenek.
-imultilib dir
kullanım dir hedefe özel C++ başlıklarını içeren dizinin bir alt dizini olarak.
-isistem dir
Ara dir tarafından belirtilen tüm dizinlerden sonra başlık dosyaları için -I ama önce
standart sistem dizinleri. Bir sistem dizini olarak işaretleyin, böylece aynı olsun
standart sistem dizinlerine uygulandığı gibi özel işlem.
If dir "=" ile başlar, ardından "=" sysroot öneki ile değiştirilir; görmek
--sistem kökü ve -isysroot.
-Alıntı yaparım dir
Ara dir yalnızca "#include" ile istenen başlık dosyaları içindosya""; onlar değil
"#includedosya>", tarafından belirtilen tüm dizinlerden önce -I ve önce
standart sistem dizinleri.
If dir "=" ile başlar, ardından "=" sysroot öneki ile değiştirilir; görmek
--sistem kökü ve -isysroot.
-yalnızca yönergeler
Ön işleme sırasında yönergeleri kullanın, ancak makroları genişletmeyin.
Seçeneğin davranışı şunlara bağlıdır: -E ve -fönceden işlenmiş seçenekleri.
İle -E, ön işleme, "#define" gibi yönergelerin işlenmesiyle sınırlıdır,
"#ifdef" ve "#hata". Makro genişletme gibi diğer önişlemci işlemleri ve
trigraf dönüşümü yapılmaz. ek olarak -dd seçenek dolaylı olarak
sağladı.
İle -fönceden işlenmiş, komut satırının ve çoğu yerleşik makronun ön tanımı
engelli. Bağlamsal olarak bağımlı olan "__LINE__" gibi makrolar işlenir
normalde. Bu, önceden "-E" ile önceden işlenmiş dosyaların derlenmesini sağlar.
-yalnızca yönergeler".
İkisi ile -E ve -fönceden işlenmiş, kurallar -fönceden işlenmiş öncelik almak. Bu
önceden "-E ile işlenmiş dosyaların tam ön işlenmesini sağlar
-yalnızca yönergeler".
-fdollar-in-tanımlayıcıları
Kabul et $ tanımlayıcılarda.
-genişletilmiş-tanımlayıcılar
Tanımlayıcılarda evrensel karakter adlarını kabul edin. Bu seçenek varsayılan olarak etkindir
C99 (ve sonraki C standart sürümleri) ve C++ için.
-fno-kanonik-sistem-başlıkları
Ön işleme yaparken, kurallılaştırma ile sistem başlık yollarını kısaltmayın.
-fönceden işlenmiş
Giriş dosyasının önceden işlendiğini ön işlemciye belirtin. Bu
makro genişletme, trigraf dönüştürme, kaçan yeni satır ekleme gibi şeyleri bastırır,
ve çoğu direktifin işlenmesi. Önişlemci hala tanır ve kaldırır
yorumlar, böylece önceden işlenmiş bir dosyayı iletebilirsiniz. -C derleyici olmadan
sorunlar. Bu modda, entegre önişlemci bir belirteç oluşturucudan biraz daha fazlasıdır.
ön uçlar için.
-fönceden işlenmiş girdi dosyası uzantılardan birine sahipse örtüktür .i, .ii or .mi.
Bunlar, GCC tarafından oluşturulan önceden işlenmiş dosyalar için kullandığı uzantılardır. -kaydet-temps.
-ftabstop=genişlik
Sekme durakları arasındaki mesafeyi ayarlayın. Bu, önişlemcinin doğru sütunu rapor etmesine yardımcı olur
satırda sekmeler görünse bile uyarı veya hatalardaki sayılar. değer daha az ise
1'den büyük veya 100'den büyükse, seçenek yoksayılır. Varsayılan 8'dir.
-fdebug-cpp
Bu seçenek yalnızca GCC hatalarını ayıklamak için kullanışlıdır. ile kullanıldığında -E, dökümleri hata ayıklama
konum haritaları hakkında bilgi. Çıktıdaki her belirteçten önce dökümü gelir.
konumunun ait olduğu harita. Bir jetonun konumunu tutan haritanın dökümü
olabilir:
{"P":F ;"F":F ;"L": ;"C": ;"S": ;"M": ;"E": ,"yer": }
olmadan kullanıldığında -E, bu seçeneğin hiçbir etkisi yoktur.
-ftrack-makro-genişletme[=seviye]
Makro genişletmelerde belirteçlerin konumlarını izleyin. Bu, derleyicinin yaymasına izin verir.
içinde bir derleme hatası oluştuğunda geçerli makro genişletme yığını hakkında tanılama
bir makro genişletme. Bu seçeneği kullanmak, önişlemciyi ve derleyiciyi tüketir.
daha fazla hafıza NS seviye parametre, belirtecin kesinlik düzeyini seçmek için kullanılabilir
konum izleme, böylece gerekirse bellek tüketimini azaltır. Değer 0 of
seviye yokmuş gibi bu seçeneği devre dışı bırakır. -ftrack-makro-genişletme üzerinde mevcuttu
komut satırı. Değer 1 için düşük bir modda belirteç konumlarını izler
minimum bellek yükü. Bu modda, bir sistemin genişletilmesinden kaynaklanan tüm jetonlar
işlev benzeri bir makronun argümanı aynı konuma sahiptir. Değer 2 iz jetonları
yerleri tamamen Bu değer en çok hafızaya aç olan değerdir. Bu seçenek verildiğinde
argüman yok, varsayılan parametre değeri 2.
"-ftrack-macro-expansion=2" öğesinin varsayılan olarak etkinleştirildiğini unutmayın.
-fexec-karakter seti=karakter kümesi
Dize ve karakter sabitleri için kullanılan yürütme karakter kümesini ayarlayın. Varsayılan
UTF-8'dir. karakter kümesi sistemin "iconv" kitaplığı tarafından desteklenen herhangi bir kodlama olabilir
rutin.
-fwide-exec-karakter kümesi=karakter kümesi
Geniş dize ve karakter sabitleri için kullanılan geniş yürütme karakter kümesini ayarlayın.
Varsayılan, "wchar_t" genişliğine karşılık gelen UTF-32 veya UTF-16'dır. Olarak
ile -fexec-karakter seti, karakter kümesi sistemin "iconv" tarafından desteklenen herhangi bir kodlama olabilir
kütüphane rutini; ancak, uymayan kodlamalarla ilgili sorunlarınız olacaktır.
tam olarak "wchar_t" içinde.
-finput-karakter seti=karakter kümesi
Giriş karakter kümesinden çeviri için kullanılan giriş karakter kümesini ayarlayın
GCC tarafından kullanılan kaynak karakter kümesine dosya. Yerel ayar belirtmiyorsa veya GCC
bu bilgiyi yerel ayardan alamaz, varsayılan UTF-8'dir. Bu olabilir
yerel ayar veya bu komut satırı seçeneği tarafından geçersiz kılınır. Şu anda komut-
çakışma varsa line seçeneği önceliklidir. karakter kümesi herhangi bir kodlama olabilir
sistemin "iconv" kitaplığı rutini tarafından desteklenir.
-fworking-dizini
Derleyiciye izin verecek önişlemci çıktısında çizgi işaretleyicilerin oluşturulmasını etkinleştirin
ön işleme sırasında geçerli çalışma dizinini bilin. Bu seçenek ne zaman
etkinleştirildiğinde, önişlemci, ilk çizgi işaretçisinden sonra ikinci bir çizgi işaretçisi yayacaktır.
geçerli çalışma dizini ve ardından iki eğik çizgi ile. GCC bunu kullanacak
dizin, önceden işlenmiş girdide mevcut olduğunda, dizin olarak
bazı hata ayıklama bilgi biçimlerinde geçerli çalışma dizini. Bu seçenek
hata ayıklama bilgisi etkinleştirilirse dolaylı olarak etkinleştirilir, ancak bu şu şekilde engellenebilir:
reddedilen form -fno-çalışma-dizini. Eğer -P komutta bayrak var
line, bu seçeneğin hiçbir etkisi yoktur, çünkü hiçbir "#line" yönergesi yayınlanmaz.
-fno-göster-sütun
Tanılamada sütun numaralarını yazdırmayın. Teşhis gerekliyse bu gerekli olabilir.
gibi sütun numaralarını anlamayan bir program tarafından taranması
dejagnu.
-A yüklem=cevap
Yüklem ile bir iddiada bulunun yüklem ve cevap cevap. Bu form
eski forma tercih -A yüklem(cevap), ki bu hala desteklenmektedir, çünkü
kabuk özel karakterleri kullanmaz.
-A -yüklem=cevap
Yüklemle bir iddiayı iptal et yüklem ve cevap cevap.
-dCHARS
KARALAR aşağıdaki karakterlerden bir veya daha fazlasının dizisidir ve
önce bir boşluk. Diğer karakterler derleyici tarafından uygun şekilde yorumlanır veya
GCC'nin gelecekteki sürümleri için ayrılmıştır ve bu nedenle sessizce yok sayılır. belirtirseniz
davranışları çatışan karakterler, sonuç tanımsızdır.
M Normal çıktı yerine, bir liste oluşturun #tanımlamak tüm yönergeler için
önceden tanımlanmış olanlar dahil, önişlemcinin yürütülmesi sırasında tanımlanan makrolar
makrolar. Bu size, sürümünüzde neyin önceden tanımlandığını bulmanın bir yolunu verir.
önişlemci. Dosyanız olmadığını varsayarsak foo.h, komuta
foo.h'ye dokunun; cpp -dM foo.h
tüm önceden tanımlanmış makroları gösterecektir.
Eğer kullanıyorsanız -dM olmadan -E seçeneği -dM eş anlamlısı olarak yorumlanır
-fdump-rtl-mach.
D Facebok sayfasını beğenin : M iki açıdan hariç: öyle değil önceden tanımlanmış makroları içerir ve
çıkışlar her ikisi de the #tanımlamak yönergeler ve ön işlemenin sonucu. Her iki tür
çıktının standart çıktı dosyasına gidin.
N Facebok sayfasını beğenin : D, ancak genişletmelerini değil, yalnızca makro adlarını yayar.
I Çıktı #Dahil etmek ön işleme sonucuna ek olarak yönergeler.
U Facebok sayfasını beğenin : D yalnızca genişletilen veya tanımlılığı test edilen makrolar dışında
önişlemci yönergelerinde çıktı alınır; çıkış kullanıma kadar ertelenir veya
makro testi; ve #undef direktifler ayrıca test edilen makrolar için çıktıdır, ancak
zaman tanımsız.
-P Önişlemciden gelen çıktıda çizgi işareti oluşumunu engeller. Bu olabilir
önişlemciyi C kodu olmayan ve gönderilecek bir şey üzerinde çalıştırırken kullanışlıdır
çizgi işaretleri tarafından karıştırılabilecek bir programa.
-C Yorumları atmayın. Tüm yorumlar, aşağıdakiler dışında çıktı dosyasına iletilir.
Direktifle birlikte silinen işlenmiş direktiflerdeki yorumlar için.
Kullanırken yan etkilere hazırlıklı olmalısınız. -C; önişlemcinin çalışmasına neden olur
yorumları kendi başlarına belirteçler olarak ele alın. Örneğin, şurada görünen yorumlar
Yönlendirici bir satırın ne olacağının başlangıcı, bu satırı bir yönergeye dönüştürme etkisine sahiptir.
sıradan kaynak satırı, çünkü satırdaki ilk jeton artık bir #.
-CC Makro genişletme sırasında da dahil olmak üzere yorumları atmayın. bu gibi -C, dışında
makrolar içinde yer alan yorumların da çıktı dosyasına iletildiğini, burada
makro genişletilir.
İlacın yan etkilerine ek olarak -C seçenek -CC seçenek tüm C++ stiline neden olur
C tarzı yorumlara dönüştürülecek bir makro içindeki yorumlar. Bu daha sonra önlemek için
Bu makronun, kaynak satırın geri kalanını yanlışlıkla yorumlamaktan kullanılması.
The -CC seçeneği genellikle tiftik yorumlarını desteklemek için kullanılır.
-geleneksel-cpp
ISO C'nin aksine eski moda C ön işlemcilerinin davranışını taklit etmeye çalışın
önişlemciler.
-trigraflar
İşlem trigraf dizileri.
-yeniden eşle
Yalnızca çok kısa dosyaya izin veren dosya sistemlerinde çalışmak için özel kodu etkinleştirin
MS-DOS gibi isimler.
--yardım et
--hedef-yardım
Herhangi bir şeyi önceden işlemek yerine tüm komut satırı seçeneklerini açıklayan metni yazdırın.
-v Ayrıntılı mod. Yürütmenin başlangıcında GNU CPP'nin sürüm numarasını yazdırın ve
içerme yolunun son şeklini bildirin.
-H Diğer normal etkinliklere ek olarak kullanılan her başlık dosyasının adını yazdırın. Her biri
adının ne kadar derin olduğunu göstermek için girintili #Dahil etmek yığın öyle. Önceden derlenmiş başlık
dosyalar da geçersiz bulunsalar bile yazdırılır; geçersiz önceden derlenmiş
başlık dosyası ile yazdırılır ...X ve geçerli bir ...! .
-version
--versiyon
GNU CPP'nin sürüm numarasını yazdırın. Bir tire ile normal şekilde ön işlemeye devam edin.
İki tire ile hemen çıkın.
ÇEVRE
Bu bölüm, CPP'nin nasıl çalıştığını etkileyen ortam değişkenlerini açıklar. Yapabilirsiniz
içerme dosyalarını ararken kullanılacak dizinleri veya önekleri belirtmek için veya
Kontrol bağımlılığı çıktısı.
gibi seçenekleri kullanarak aranacak yerleri de belirtebileceğinizi unutmayın. -I, ve kontrol
gibi seçeneklerle bağımlılık çıktısı -M. Bunlar, ortam değişkenlerine göre önceliklidir,
bu da GCC'nin yapılandırmasına göre önceliklidir.
CPATH
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
Her değişkenin değeri, özel bir karakterle ayrılmış dizinlerin bir listesidir.
sevmek PATH, başlık dosyalarının aranacağı yer. Özel karakter,
"PATH_SEPARATOR", hedefe bağlıdır ve GCC oluşturma zamanında belirlenir. Microsoft için
Windows tabanlı hedefler bir noktalı virgüldür ve neredeyse tüm diğer hedefler için bir
kolon.
CPATH ile belirtilmiş gibi aranacak dizinlerin bir listesini belirtir. -I, fakat
ile verilen herhangi bir yoldan sonra -I komut satırındaki seçenekler. Bu ortam değişkeni
hangi dilin önceden işlendiğine bakılmaksızın kullanılır.
Kalan ortam değişkenleri yalnızca belirli bir önişleme yapılırken geçerlidir.
belirtilen dil. Her biri, sanki aranacak dizinlerin bir listesini belirtir.
ile belirtilen -isistem, ancak verilen herhangi bir yoldan sonra -isistem seçenekleri
Komut satırı.
Tüm bu değişkenlerde, boş bir öğe derleyiciye mevcut değerini aramasını söyler.
çalışma dizini. Boş öğeler bir yolun başında veya sonunda görünebilir. İçin
örneğin, eğer değeri CPATH ile aynı etkiye sahip olan ":/özel/include"
-BEN. -I/özel/dahil.
DEPENDENCECIES_OUTPUT
Bu değişken ayarlanırsa, değeri, Make tabanlı için bağımlılıkların nasıl çıktı alınacağını belirtir.
derleyici tarafından işlenen sistem dışı başlık dosyalarında. Sistem başlık dosyaları
bağımlılık çıktısında yoksayılır.
Değeri DEPENDENCECIES_OUTPUT sadece bir dosya adı olabilir, bu durumda Yap kuralları
kaynak dosya adından hedef adını tahmin ederek o dosyaya yazılır. Ya da
değer forma sahip olabilir dosya hedef, bu durumda kurallar dosyaya yazılır dosya
kullanma hedef hedef adı olarak
Başka bir deyişle, bu ortam değişkeni seçenekleri birleştirmeye eşdeğerdir. -MM
ve -MF, isteğe bağlı -MT de geçiş yapın.
SUNPRO_DEPENDERCIES
Bu değişken aynı DEPENDENCECIES_OUTPUT (yukarıya bakın), bu sistem hariç
başlık dosyaları göz ardı edilmez, bu nedenle -M ziyade -MM. Bununla birlikte,
ana girdi dosyasına bağımlılık atlanır.
onworks.net hizmetlerini kullanarak cpp-5'yı çevrimiçi kullanın