Özet
clang [seçenekler] dosya_adı ...
Açıklama
clang; ön işleme, ayrıştırma, optimizasyon, kod oluşturma, montaj ve bağlama işlemlerini kapsayan bir C, C++ ve Objective-C derleyicisidir. Hangi üst düzey mod ayarının aktarıldığına bağlı olarak Clang, tam bir bağlama işlemi gerçekleştirmeden önce duracaktır. Clang son derece entegre bir yapıda olsa da, onu nasıl çağıracağınızı anlamak için derleme aşamalarını kavramak önemlidir. Bu aşamalar şunlardır:
Sürücü (Driver) clang yürütülebilir dosyası, aslında derleyici, montajcı (assembler) ve bağlayıcı (linker) gibi diğer araçların genel yürütülmesini kontrol eden küçük bir sürücüdür. Genellikle sürücüyle doğrudan etkileşime girmeniz gerekmez, ancak diğer araçları çalıştırmak için onu şeffaf bir şekilde kullanırsınız.
Ön İşleme (Preprocessing) Bu aşama; girdi kaynak dosyasının belirteçlere ayrılmasını (tokenization), makro açılımını, #include açılımını ve diğer ön işlemci yönergelerinin işlenmesini gerçekleştirir. Bu aşamanın çıktısı genellikle bir ".i" (C için), ".ii" (C++ için), ".mi" (Objective-C için) veya ".mii" (Objective-C++ için) dosyası olarak adlandırılır.
Ayrıştırma ve Anlamsal Analiz (Parsing and Semantic Analysis) Bu aşama, girdi dosyasını ayrıştırarak ön işlemci belirteçlerini bir ayrıştırma ağacına dönüştürür. Ayrıştırma ağacı formuna getirildikten sonra, ifadelerin türlerini hesaplamak ve kodun düzgün biçimlendirilip biçimlendirilmediğini belirlemek için anlamsal analiz uygular. Bu aşama, ayrıştırma hatalarının yanı sıra derleyici uyarılarının çoğunun oluşturulmasından sorumludur. Bu aşamanın çıktısı bir "Soyut Sözdizimi Ağacı" (Abstract Syntax Tree - AST) şeklindedir.
Kod Oluşturma ve Optimizasyon (Code Generation and Optimization) Bu aşama, bir AST'yi düşük seviyeli ara koda ("LLVM IR" olarak bilinir) ve nihayetinde makine koduna dönüştürür. Bu aşama, oluşturulan kodun optimize edilmesinden ve hedefe özel kod oluşturma işlemlerinin işlenmesinden sorumludur. Bu aşamanın çıktısı genellikle bir ".s" dosyası veya "assembly" (montaj) dosyası olarak adlandırılır.
Clang ayrıca, kod oluşturucunun doğrudan nesne (object) dosyaları ürettiği entegre bir montajcının kullanılmasını da destekler. Bu, ".s" dosyasının oluşturulması ve hedef montajcının çağrılması yükünü ortadan kaldırır.
Montajcı (Assembler) Bu aşama, derleyicinin çıktısını hedef nesne dosyasına dönüştürmek için hedef montajcıyı çalıştırır. Bu aşamanın çıktısı genellikle bir ".o" dosyası veya "nesne" (object) dosyası olarak adlandırılır.
Bağlayıcı (Linker) Bu aşama, birden fazla nesne dosyasını bir yürütülebilir dosya veya dinamik kütüphane halinde birleştirmek için hedef bağlayıcıyı çalıştırır. Bu aşamanın çıktısı genellikle bir "a.out", ".dylib" veya ".so" dosyası olarak adlandırılır.
Clang Statik Analizörü (Clang Static Analyzer)
Clang Statik Analizörü, kod analizi yoluyla hataları bulmaya çalışmak için kaynak kodu tarayan bir araçtır. Bu araç Clang'in birçok parçasını kullanır ve aynı sürücüye yerleştirilmiştir. Statik analizörün nasıl kullanılacağı hakkında daha fazla ayrıntı için lütfen https://clang-analyzer.llvm.org adresini ziyaret edin.
Seçenekler
Aşama Seçim Seçenekleri
-E: Ön işlemci aşamasını çalıştırır.
-fsyntax-only Ön işlemci, ayrıştırıcı ve anlamsal analiz aşamalarını çalıştırır.
-S: Önceki aşamaların yanı sıra LLVM oluşturma, optimizasyon ve hedefe özel kod oluşturma aşamalarını çalıştırarak bir assembly dosyası üretir.-c: Yukarıdakilerin tümünü ve montajcıyı çalıştırarak bir hedef ".o" nesne dosyası oluşturur.
aşama seçim seçeneği yok Herhangi bir aşama seçim seçeneği belirtilmezse, yukarıdaki tüm aşamalar çalıştırılır ve sonuçları bir yürütülebilir dosya veya paylaşılan kütüphanede birleştirmek için bağlayıcı çalıştırılır.
Dil Seçimi ve Mod Seçenekleri
-x
-std=
C dili için desteklenen değerler şunlardır: c89 c90 iso9899:1990
ISO C 1990 iso9899:199409
Düzeltme 1 ile ISO C 1990 gnu89 gnu90
GNU uzantılarıyla ISO C 1990 c99 iso9899:1999
ISO C 1999 gnu99
GNU uzantılarıyla ISO C 1999 c11 iso9899:2011
ISO C 2011 gnu11
GNU uzantılarıyla ISO C 2011 c17 iso9899:2017
ISO C 2017 gnu17
GNU uzantılarıyla ISO C 2017 c23 iso9899:2024
ISO C 2023 gnu23
GNU uzantılarıyla ISO C 2023 c2y
ISO C 202y gnu2y
GNU uzantılarıyla ISO C 202y
Varsayılan C dili standardı, PS4 hariç gnu17'dir; PS4 üzerinde ise gnu99'dur.
C++ dili için desteklenen değerler şunlardır: c++98 c++03
Düzeltmelerle ISO C++ 1998 gnu++98 gnu++03
Düzeltmeler ve GNU uzantılarıyla ISO C++ 1998 c++11
Düzeltmelerle ISO C++ 2011 gnu++11
Düzeltmeler ve GNU uzantılarıyla ISO C++ 2011 c++14
Düzeltmelerle ISO C++ 2014 gnu++14
Düzeltmeler ve GNU uzantılarıyla ISO C++ 2014 c++17
Düzeltmelerle ISO C++ 2017 gnu++17
Düzeltmeler ve GNU uzantılarıyla ISO C++ 2017 c++20
Düzeltmelerle ISO C++ 2020 gnu++20
Düzeltmeler ve GNU uzantılarıyla ISO C++ 2020 c++23
Düzeltmelerle ISO C++ 2023 gnu++23
Düzeltmeler ve GNU uzantılarıyla ISO C++ 2023 c++2c
C++2c için çalışma taslağı gnu++2c
GNU uzantılarıyla C++2c için çalışma taslağı
Varsayılan C++ dili standardı gnu++14'tür.
OpenCL dili için desteklenen değerler şunlardır: cl1.0
OpenCL 1.0 cl1.1
OpenCL 1.1 cl1.2
OpenCL 1.2 cl2.0
OpenCL 2.0
Varsayılan OpenCL dili standardı cl1.0'dır.
CUDA dili için desteklenen değerler şunlardır: cuda
NVIDIA CUDA(tm)
-stdlib=<kütüphane> Kullanılacak C++ standart kütüphanesini belirtir; desteklenen seçenekler libstdc++ ve libc++'dır. Belirtilmezse, platform varsayılanı kullanılır.
-rtlib=<kütüphane> Kullanılacak derleyici çalışma zamanı kütüphanesini belirtir; desteklenen seçenekler libgcc ve compiler-rt'dir. Belirtilmezse, platform varsayılanı kullanılır.
-ansi: -std=c89 ile aynıdır.
-ObjC, -ObjC++ Kaynak girdi dosyalarını sırasıyla Objective-C ve Objective-C++ girdileri olarak işler.
-trigraphs Üçlü karakterleri (trigraphs) etkinleştirir.
-ffreestanding Dosyanın barındırılan (hosted) bir ortam yerine bağımsız (freestanding) bir ortam için derlenmesi gerektiğini belirtir. Bağımsız bir derlemenin, belirtilen dil modu ve hedef ortam için bağımsız arayüzleri destekleyen bir C Standart Kütüphanesine bağlanmayı gerektirdiğini unutmayın. Bu, memcpy, memmove ve memset gibi işlevleri içerir.
-fno-builtin strlen() ve malloc() gibi tanınmış kütüphane işlevlerinin özel olarak işlenmesini ve optimize edilmesini devre dışı bırakır.
-fno-builtin-<işlev> Belirli kütüphane işlevi için özel işlemeyi ve optimizasyonları devre dışı bırakır. Örneğin, -fno-builtin-strlen, strlen() kütüphane işlevi için her türlü özel işlemeyi kaldırır.
-fno-builtin-std-<işlev> std ad alanındaki belirli C++ standart kütüphane işlevi için özel işlemeyi ve optimizasyonları devre dışı bırakır. Örneğin, -fno-builtin-std-move_if_noexcept, std::move_if_noexcept() kütüphane işlevi için her türlü özel işlemeyi kaldırır.
C++ standart kütüphanesinin de std ad alanında sağladığı C standart kütüphane işlevleri için bunun yerine -fno-builtin-<işlev> seçeneğini kullanın.
-fmath-errno Matematik işlevlerinin errno değerini güncelleyecek şekilde değerlendirilmesi gerektiğini belirtir.
-fpascal-strings "\pfoo" ile Pascal tarzı dizeler için desteği etkinleştirir.
-fms-extensions Microsoft uzantıları için desteği etkinleştirir.
-fmsc-version= _MSC_VER değerini ayarlar. Windows üzerindeyken varsayılan olarak şu anda yüklü olan cl.exe sürümüyle aynı değere ya da 1933 değerine ayarlanır. Diğer durumlarda ayarlanmaz.
-fborland-extensions Borland uzantıları için desteği etkinleştirir.
-fwritable-strings Tüm dize sabit değerlerini (string literals) varsayılan olarak yazifiable hale getirir. Bu, dizelerin tekilleştirilmesini (uniquing) ve diğer optimizasyonları devre dışı bırakır.
-flax-vector-conversions, -flax-vector-conversions=<tür>, -fno-lax-vector-conversions Örtük vektör dönüşümleri için esnek tür denetimi kurallarına izin verir. <tür> için olası değerler:
• none: vektörler arasında örtük dönüşüme izin vermez
• integer: aynı genel bit genişliğine sahip tamsayı vektörleri arasında örtük bit dönüştürmelerine (bitcast) izin verir
• all: aynı genel bit genişliğine sahip herhangi bir vektör arasında örtük bit dönüştürmelerine (bitcast) izin verir
Belirtilmezse <tür> varsayılan olarak integer olur.
-fblocks "Blocks" dil özelliğini etkinleştirir.
-fobjc-abi-version=sürüm Kullanılacak Objective-C ABI sürümünü seçer. Mevcut sürümler 1 (eski "kırılgan" ABI), 2 (kırılgan olmayan ABI 1) ve 3'tür (kırılgan olmayan ABI 2).
-fobjc-nonfragile-abi-version=<sürüm> Varsayılan olarak kullanılacak Objective-C kırılgan olmayan ABI sürümünü seçer. Bu, yalnızca kırılgan olmayan ABI etkinleştirildiğinde (ister -fobjc-nonfragile-abi aracılığıyla ister platform varsayılanı olduğu için) Objective-C ABI olarak kullanılacaktır.
-fobjc-nonfragile-abi, -fno-objc-nonfragile-abi Objective-C kırılgan olmayan ABI kullanımını etkinleştirir. Bu ABI'nin varsayılan olduğu platformlarda, -fno-objc-nonfragile-abi seçeneği ile devre dışı bırakılabilir.
Hedef Seçim Seçenekleri Clang, tasarımının doğal bir parçası olarak çapraz derlemeyi (cross compilation) tamamen destekler. Clang sürümünüzün nasıl yapılandırıldığına bağlı olarak, bir dizi çapraz derleyici desteğine sahip olabilir veya yalnızca yerel bir hedefi destekleyebilir.
-arch
-target
-mmacos-version-min=<sürüm> macOS için derleme yaparken, uygulamanız tarafından desteklenen minimum sürümü belirtir.
-miphoneos-version-min iPhone OS için derleme yaparken, uygulamanız tarafından desteklenen minimum sürümü belirtir.
--print-supported-cpus
Belirli bir hedef için ( --target=
-mcpu=?, -mtune=? --print-supported-cpus için bir takma ad (alias) görevi görür.
-mcpu=help, -mtune=help --print-supported-cpus için bir takma ad görevi görür.
-march=
--print-enabled-extensions --target, -march ve -mcpu değerlerinin kombinasyonu ile belirtilen hedef için etkinleştirilmiş uzantıların listesini yazdırır. Şu anda bu seçenek yalnızca AArch64 ve RISC-V üzerinde desteklenmektedir. RISC-V üzerinde bu seçenek, etkinleştirilmiş uzantıların ISA dizesini de yazdırır.
--print-supported-extensions
Bir mimari için ( --target=
Kod Oluşturma Seçenekleri
-O0, -O1, -O2, -O3, -Ofast, -Os, -Oz, -Og, -O, -O4 Hangi optimizasyon seviyesinin kullanılacağını belirtir: -O0 "Optimizasyon yok" anlamına gelir: bu seviye en hızlı şekilde derleme yapar ve hata ayıklamaya en uygun kodu üretir.
-O1 -O0 ile -O2 arasında bir yerdedir.
-O2 Çoğu optimizasyonu etkinleştiren orta düzeyde optimizasyondur.
-O3 -O2 gibidir, ancak yürütülmesi daha uzun süren veya (programın daha hızlı çalışmasını sağlamak amacıyla) daha büyük kod oluşturabilecek optimizasyonları etkinleştirir.
-Ofast Dil standartlarıyla kesin uyumluluğu ihlal edebilecek diğer agresif optimizasyonlarla birlikte -O3'teki tüm optimizasyonları etkinleştirir. Bu seçenek Clang 19'da kullanımdan kaldırılmıştır ve standart dışı matematik davranışı talebi amaçlanıyorsa bunun yerine -ffast-math ile birlikte -O3 kullanılmalıdır uyarısı verilir. Kaldırma için henüz bir takvim bulunmamaktadır; amaç, bir optimizasyon bayrağının doğru kodun gözlemlenebilir davranışını değiştirmesinden kaynaklanan şaşırtıcı davranış nedeniyle -Ofast kullanımını vazgeçirmektir.
-Os Kod boyutunu azaltmak için ekstra optimizasyonlarla birlikte -O2 gibidir.
-Oz -Os (ve dolayısıyla -O2) gibidir, ancak kod boyutunu daha da azaltır.
-Og -O1'e benzer, ancak biraz azaltılmış optimizasyon ve daha iyi değişken görünürlüğü sunar. -O1 ile aynı optimizasyonlar çalıştırılır, ancak optimizasyonların kullanıcı değişkenlerinin canlılığını azaltmasını engellemeye çalışan ve hata ayıklama sırasında kullanılabilirliklerini artıran -fextend-variable-liveness bayrağı da ayarlanır.
-O -O1 ile eşdeğerdir.
-O4 ve üzeri Şu anda -O3 ile eşdeğerdir.
-g, -gline-tables-only, -gmodules
Hata ayıklama bilgisi çıktısını kontrol eder. Clang hata ayıklama bilgisinin en iyi - -O0 seviyesinde çalıştığını unutmayın. -g ile başlayan birden fazla seçenek belirtildiğinde en sonuncusu geçerli olur:
-g Hata ayıklama bilgisi oluşturur.
-gline-tables-only Yalnızca satır tablosu hata ayıklama bilgisi oluşturur. Bu, satır içi yerleştirme (inlining) bilgileriyle simgeleştirilmiş geri izlemelere (backtrace) izin verir, ancak değişkenler, konumları veya türleri hakkında hiçbir bilgi içermez.
-gmodules Her nesne dosyasına gereksiz hata ayıklama türü bilgisi yazmak yerine, Clang modüllerinde veya önceden derlenmiş başlıklarda tanımlanan türlere harici referanslar içeren hata ayıklama bilgileri oluşturur. Bu seçenek, Clang modül formatını, Clang modülünü hata ayıklama bilgiyle birlikte tutan nesne dosyası kaplarına şeffaf bir şekilde geçirir. Clang modülleri veya önceden derlenmiş başlıklar kullanan bir programı derlerken bu seçenek, daha hızlı derleme süreleri ve çok daha küçük nesne dosyaları ile eksiksiz hata ayıklama bilgisi üretir.
Bu seçenek, diğer makinelere dağıtılacak statik kütüphaneler derlenirken kullanılmamalıdır; çünkü hata ayıklama bilgisi, kütüphanedeki nesne dosyalarının oluşturulduğu makinedeki modül önbelleğine referanslar içerecektir.
-fstandalone-debug -fno-standalone-debug Clang, ikili dosyadaki hata ayıklama bilgisinin boyutunu azaltmak için bir dizi optimizasyonu destekler. Bu optimizasyonlar, hata ayıklama tür bilgisinin birden fazla derleme birimine yayılabileceği varsayımına dayanarak çalışır. Örneğin Clang, bir modül için gerekli olmayan ve bir ön bildirim (forward declaration) ile değiştirilebilecek tür tanımlarını oluşturmayacaktır. Ayrıca Clang, bir modüldeki dinamik bir C++ sınıfı için yalnızca o sınıfın sanal tablosunu (vtable) içeren tür bilgisini oluşturacaktır.
-fstandalone-debug seçeneği bu optimizasyonları kapatır. Bu seçenek, hata ayıklama bilgisi içermeyen 3. taraf kütüphanelerle çalışırken kullanışlıdır. Darwin'de bu varsayılandır. Clang'in, program tarafından hiç referans verilmeyen türler için hiçbir zaman tür bilgisi üretmeyeceğini unutmayın.
-feliminate-unused-debug-types Varsayılan olarak Clang, bir programda tanımlanmış ancak kullanılmamış türler için tür bilgisi üretmez. Bu kullanılmayan türlerin hata ayıklama bilgisini korumak için, tersi olan -fno-eliminate-unused-debug-types seçeneği kullanılabilir.
-fexceptions Clang ile derlenmiş yığın çerçeveleri (stack frames) üzerinden istisnaların (exceptions) fırlatılmasına izin verir (birçok hedefte bu, üzerlerinden bir istisna fırlatılabilecek işlevler için yığın geri sarma -unwind- bilgisini etkinleştirecektir). Çoğu hedefte bu, C++ için varsayılan olarak etkindir.
-ftrapv Tamsayı taşması hatalarını yakalamak için kod oluşturur. İşaretli tamsayı taşması C'de tanımsızdır. Bu bayrakla, bunu tespit etmek ve gerçekleştiğinde programı sonlandırmak (abort) için ekstra kod oluşturulur.
-fvisibility Bu bayrak, varsayılan görünürlük seviyesini ayarlar.
-fcommon, -fno-common Bu bayrak, başlatıcısı (initializer) olmayan değişkenlerin ortak bağlama (common linkage) alacağını belirtir. -fno-common seçeneği ile devre dışı bırakılabilir.
-ftls-model=
-flto, -flto=full, -flto=thin, -emit-llvm Bağlama zamanı optimizasyonuna (LTO) uygun, LLVM formatlarında çıktı dosyaları üretir. -S ile kullanıldığında bu seçenek LLVM ara dili assembly dosyaları üretir; aksi takdirde LLVM bit kodu formatında nesne dosyaları üretir (bunlar aşama seçim seçeneklerine bağlı olarak bağlayıcıya aktarılabilir).
-flto için varsayılan "full"dür; bu modda LLVM bit kodu, bağlayıcının optimizasyon için bu tür tüm modülleri tek bir birleşik modülde birleştirdiği monolitik Bağlama Zamanı Optimizasyonu (LTO) için uygundur. "thin" ile bunun yerine ThinLTO derlemesi çağrılır.
NOT:
Darwin'de, -flto seçeneğini -g ile birlikte kullanırken ve derleme ile bağlama işlemlerini ayrı adımlarda gerçekleştirirken, ld64 bağlayıcısına Bağlama Zamanı Optimizasyonu sırasında oluşturulan geçici nesne dosyasını silmemesini talimatı vermek için bağlama adımında -Wl,-object_path_lto,
Sürücü Seçenekleri
-### Bu derleme için çalıştırılacak komutları yazdırır (ancak çalıştırmaz).
--help Kullanılabilir seçenekleri görüntüler.
-Qunused-arguments Kullanılmayan sürücü argümanları için herhangi bir uyarı vermez.
-Wa,<argümanlar> Virgülle ayrılmış argümanları montajcıya aktarır.
-Wl,<argümanlar> Virgülle ayrılmış argümanları bağlayıcıya aktarır.
-Wp,<argümanlar> Virgülle ayrılmış argümanları ön işlemciye aktarır.
-Xanalyzer <argüman> Belirtilen argümanı statik analizöre aktarır.
-Xassembler <argüman> Belirtilen argümanı montajcıya aktarır.
-Xlinker <argüman> Belirtilen argümanı bağlayıcıya aktarır.
-Xpreprocessor <argüman> Belirtilen argümanı ön işlemciye aktarır.
-o
-print-file-name=
-print-libgcc-file-name Şu anda kullanılan derleyici çalışma zamanı kütüphanesinin kütüphane yolunu yazdırır ("libgcc.a" or "libclang_rt.builtins.*.a").
-print-prog-name=
-print-search-dirs Kütüphaneleri ve programları bulmak için kullanılan yolları yazdırır.
-save-temps Ara derleme sonuçlarını kaydeder.
-save-stats, -save-stats=cwd, -save-stats=obj Dahili kod oluşturma (LLVM) istatistiklerini geçerli dizindeki (-save-stats/"-save-stats=cwd") veya çıktı dosyasının dizinindeki ("-save-state=obj") bir dosyaya kaydeder.
İstatistik raporlamasını kontrol etmek için ortam değişkenlerini de kullanabilirsiniz. CC_PRINT_INTERNAL_STAT değerini 1 yapmak bu özelliği etkinleştirir; rapor standart çıktıya JSON formatında gönderilir.
CC_PRINT_INTERNAL_STAT_FILE değerini bir dosya yoluna ayarlamak, istatistiklerin belirtilen dosyaya JSON formatında raporlanmasını sağlar.
-save-stats seçeneğinin CC_PRINT_INTERNAL_STAT ve CC_PRINT_INTERNAL_STAT_FILE değişkenlerinden öncelikli olduğunu unutmayın.
-integrated-as, -no-integrated-as Sırasıyla entegre montajcının kullanımını etkinleştirmek ve devre dışı bırakmak için kullanılır. Entegre montajcının varsayılan olarak açık olup olmadığı hedefe bağlıdir.
-time: Bireysel komutları sürelendirir.
-ftime-report Derlemenin her bir aşamasının zamanlama özetini yazdırır.
-v: Çalıştırılacak komutları gösterir ve ayrıntılı çıktı kullanır.
Tanılama Seçenekleri
-fshow-column, -fshow-source-location, -fcaret-diagnostics, -fdiagnostics-fixit-info, -fdiagnostics-parseable-fixits, -fdiagnostics-print-source-range-info, -fprint-source-range-info, -fdiagnostics-show-option, -fmessage-length Bu seçenekler, Clang'in tanılama bilgileri (hatalar ve uyarılar) hakkındaki bilgileri nasıl yazdıracağını kontrol eder. Daha fazla bilgi için lütfen Clang Kullanıcı Kılavuzu'na bakın.
Ön İşlemci Seçenekleri
-D
-U
-include
-I
-F
-nostdinc Dahil etme dosyaları için standart sistem dizinlerini veya derleyicinin yerleşik (builtin) dizinlerini aramaz.
-nostdlibinc Dahil etme dosyaları için standart sistem dizinlerini aramaz, ancak derleyicinin yerleşik dahil etme dizinlerini arar.
-nobuiltininc Dahil etme dosyaları için clang'in yerleşik (builtin) dizinini aramaz.
-nostdinc++ Dahil etme dosyaları için sistemin C++ standart kütüphane dizinini aramaz.
-fkeep-system-includes Yalnızca -E seçeneği ile kullanılabilir. "Sistem" başlıklarının önceden işlenmiş içeriğini çıktıya kopyalamaz; bunun yerine #include yönergesini korur. Bu, "küçük" ve yeniden üretilebilir bir test senaryosu üretmeye çalışırken yardımcı olabilecek şekilde -E tarafından üretilen metin hacmini büyük ölçüde azaltabilir.
Ancak bu seçenek yeniden üretilebilirliği garanti etmez. Dahil eden kaynak, sistem başlıklarının davranışını etkileyen ön işlemci sembolleri tanımlıyorsa (örneğin _XOPEN_SOURCE) -E işlemi bu tanımı kaldıracaktır ve dolayısıyla dahil edilen başlığın anlambilimini (semantics) değiştirebilir. Ayrıca, sistem başlıklarının farklı bir sürümünü (özellikle STL'nin farklı bir sürümünü) kullanmak farklı davranışlara neden olabilir. Önceden işlenmiş dosyayı her zaman ayrı olarak derleyerek doğrulayın.
Ortam
TMPDIR, TEMP, TMP Bu ortam değişkenleri, derleme işlemi sırasında kullanılan geçici dosyaların yazılacağı konumu belirlemek için sırasıyla kontrol edilir.
CPATH Bu ortam değişkeni, dahil edilen başlık dosyalarını bulmak için kullanılacak ek (sistem dışı) başlık arama yollarını belirtir. Bu yollar, -I
C_INCLUDE_PATH, OBJC_INCLUDE_PATH, CPLUS_INCLUDE_PATH, OBJCPLUS_INCLUDE_PATH Bu ortam değişkenleri, ilgili dil işlenirken kullanılacak ek sistem başlık dosyası arama yollarını belirtir. Arama yolları CPATH ortam değişkeninde olduğu gibi sınırlandırılır.
MACOSX_DEPLOYMENT_TARGET -mmacos-version-min belirtilmemişse, varsayılan dağıtım hedefi bu ortam değişkeninden okunur. Bu seçenek yalnızca Darwin hedeflerini etkiler.
Hatalar
Hataları bildirmek için lütfen https://github.com/llvm/llvm-project/issues/ adresini ziyaret edin. Çoğu hata bildirimi, yeniden üretme bilgileriyle birlikte önceden işlenmiş kaynak dosyaları (-E seçeneğini kullanın) ve derleyicinin tam çıktısını içermelidir.
Ayrıca Bakınız
as(1), ld(1)
Yazar
Clang / LLVM Ekibi tarafından sürdürülmektedir (http://clang.llvm.org)
Telif Hakkı
2007-2026, Clang Ekibi
11 13 Şubat 2026 CLANG(1)