/clr (Ortak Dil Çalışma Zamanı Derlemesi)

Uygulamaların ve bileşenlerin ortak dil çalışma zamanı (CLR) özelliklerini kullanmasını sağlar ve C++/CLI derlemesini etkinleştirir.

Sözdizimi

/clr[:seçenekler]

Bağımsız değişkenler

Seçenekler
Aşağıdaki virgülle ayrılmış bağımsız değişkenlerden biri veya daha fazlası.

  • yok

    Seçenek olmadan bileşen /clr için meta veriler oluşturur. Meta veriler diğer CLR uygulamaları tarafından kullanılabilir ve bileşenin diğer CLR bileşenlerinin meta verilerindeki türleri ve verileri kullanmasına olanak tanır. Daha fazla bilgi için bkz . Karma (Yerel ve Yönetilen) Derlemeler.

  • netcore

    Visual Studio 2019 sürüm 16.4'den itibaren kullanılabilir, /clr:netcore .NET Core olarak da bilinen en son platformlar arası .NET çerçevesini kullanarak bileşen için meta veriler ve kodlar oluşturur. Meta veriler diğer .NET Core uygulamaları tarafından kullanılabilir. Bu seçenek, bileşenin diğer .NET Core bileşenlerinin meta verilerindeki türleri ve verileri kullanmasına olanak tanır.

  • nostdlib

    Derleyiciye varsayılan \clr dizini yoksaymasını sağlar. DLL'nin System.dll gibi birden çok sürümünü eklerseniz derleyici hata üretir. Bu seçenek, derleme sırasında kullanılacak çerçeveyi belirtmenize olanak tanır.

  • pure

    /clr:pure kullanım dışı bırakıldı. Bu seçenek Visual Studio 2017 ve sonraki sürümlerde kaldırılır. Saf MSIL olması gereken bağlantı noktası kodunu C# olarak taşımanızı öneririz.

  • safe

    /clr:safe kullanım dışı bırakıldı. Bu seçenek Visual Studio 2017 ve sonraki sürümlerde kaldırılır. GÜVENLI MSIL olması gereken bağlantı noktası kodunu C# olarak taşımanızı öneririz.

  • noAssembly

    /clr:noAssembly kullanım dışı bırakıldı. Bunun yerine (MSIL Modülü Oluştur) kullanın /LN .

    Derleyiciye çıkış dosyasına bir derleme bildirimi eklememelerini söyler. Varsayılan olarak, noAssembly seçenek etkin değildir.

    Bildirimde derleme meta verileri olmayan yönetilen bir program modül olarak bilinir. noAssembly seçeneği yalnızca modül oluşturmak için kullanılabilir. ve /clr:noAssemblykullanarak /c derlerseniz bağlayıcı aşamasında modül oluşturma seçeneğini belirtin/NOASSEMBLY.

    Visual Studio 2005'in /clr:noAssembly öncesinde gerekli /LD. /LD artık belirttiğinizde /clr:noAssemblyima edilir.

  • initialAppDomain

    initialAppDomain kullanımdan kaldırıldı. C++/CLI uygulamasının CLR'nin 1. sürümünde çalışmasını sağlar. kullanılarak initialAppDomain derlenen bir uygulama, CLR'nin 1. sürümünde desteklenmediğinden ASP.NET kullanan bir uygulama tarafından kullanılmamalıdır.

Açıklamalar

Yönetilen kod , CLR tarafından denetlenebilen ve yönetilebilen koddur. Yönetilen kod yönetilen nesnelere erişebilir. Daha fazla bilgi için bkz /clr . Kısıtlamalar.

C++ dilinde yönetilen türleri tanımlayan ve kullanan uygulamalar geliştirme hakkında bilgi için bkz . Çalışma Zamanı Platformları için Bileşen Uzantıları.

Kullanılarak /clr derlenen bir uygulama, yönetilen veriler içerebilir veya içermeyebilir.

Yönetilen uygulamada hata ayıklamayı etkinleştirmek için bkz /ASSEMBLYDEBUG . (DebuggableAttribute Ekleme).

Çöp toplanan yığında yalnızca CLR türleri örneği oluşturulur. Daha fazla bilgi için bkz . Sınıflar ve Yapılar. İşlevi yerel koda derlemek için pragması kullanın unmanaged . Daha fazla bilgi için bkz. managed, unmanaged.

Varsayılan olarak etkin /clr değildir. Etkin olduğunda /clr da /MD etkindir. Daha fazla bilgi için bkz /MD. , /MT, /LD (Çalışma Zamanı Kitaplığını Kullanma). /MD çalışma zamanı yordamlarının dinamik olarak bağlı, çok iş parçacıklı sürümlerinin standart üst bilgi dosyalarından seçilmesini sağlar. CLR çöp toplayıcısı yardımcı bir iş parçacığında sonlandırıcılar çalıştırdığından, yönetilen programlama için çok iş parçacığı gereklidir.

kullanarak /cderlerseniz bağlayıcı seçeneğini kullanarak sonuçta elde edilen çıktı dosyasının /CLRIMAGETYPE CLR türünü belirtebilirsiniz.

/clrifade eder /EHave için /clrbaşka /EH hiçbir seçenek desteklenmez. Daha fazla bilgi için bkz /EH . (Özel Durum İşleme Modeli).

Bir dosyanın CLR görüntü türünü belirleme hakkında bilgi için bkz /CLRHEADER. .

Bağlayıcının belirli bir çağrısına geçirilen tüm modüller, aynı çalışma zamanı kitaplığı derleyici seçeneği (/MD veya /LD) kullanılarak derlenmelidir.

Bir derlemeye /ASSEMBLYRESOURCE kaynak eklemek için bağlayıcı seçeneğini kullanın. /DELAYSIGN, /KEYCONTAINERve /KEYFILE bağlayıcı seçenekleri de bir derlemenin nasıl oluşturulduğunu özelleştirmenize olanak sağlar.

Kullanıldığında /clr , _MANAGED simge 1 olarak tanımlanır. Daha fazla bilgi için bkz . Önceden tanımlanmış makrolar.

Yerel nesne dosyasındaki genel değişkenler önce başlatılır ( DllMain yürütülebilir dosya DLL ise sırasında) ve ardından yönetilen bölümdeki genel değişkenler başlatılır (yönetilen kod çalıştırilmeden önce). #pragma init_seg yalnızca yönetilen ve yönetilmeyen kategorilerdeki başlatma sırasını etkiler.

Meta Veriler ve Adlandırılmamış Sınıflar

Adsız sınıflar meta verilerde gibi $UnnamedClass$<crc-of-current-file-name>$<index>$adlar altında görünür; burada <index> derlemedeki adsız sınıfların sıralı sayısıdır. Örneğin, aşağıdaki kod örneği meta verilerde adlandırılmamış bir sınıf oluşturur.

// clr_unnamed_class.cpp
// compile by using: /clr /LD
class {} x;

Meta verileri görüntülemek için ildasm.exe kullanın.

Bu derleyici seçeneğini Visual Studio geliştirme ortamında ayarlamak için

  1. Projenin Özellik Sayfaları iletişim kutusunu açın. Ayrıntılar için bkz . Visual Studio'da C++ derleyicisi ve derleme özelliklerini ayarlama.

  2. Yapılandırma açılan listesini Tüm yapılandırmalar olarak ayarlayın ve Platform açılan listesini Tüm Platformlar olarak ayarlayın.

  3. Yapılandırma Özellikleri>C/C++>Genel sayfasını seçin.

  4. Ortak Dil Çalışma Zamanı Desteği özelliğini değiştirin. Değişikliklerinizi kaydetmek için Tamam'ı seçin.

Not

Visual Studio IDE'de, /clr derleyici seçeneği Özellik Sayfaları iletişim kutusunun Yapılandırma Özellikleri>C/C++>Genel sayfasında ayrı ayrı ayarlanabilir. Ancak, projenizi oluşturmak için bir CLR şablonu kullanmanızı öneririz. Bir CLR bileşeninin başarıyla oluşturulması için gereken tüm özellikleri ayarlar. Bu özellikleri ayarlamanın bir diğer yolu da Özellik Sayfaları iletişim kutusunun Yapılandırma Özellikleri>Gelişmiş sayfasındaki Ortak Dil Çalışma Zamanı Desteği özelliğini kullanmaktır. Bu özellik, CLR ile ilgili diğer tüm araç seçeneklerini aynı anda ayarlar.

Bu derleyici seçeneğini program üzerinden ayarlamak için

Ayrıca bkz.

MSVC Derleyicisi Seçenekleri
MSVC Derleyicisi Komut Satırı Söz Dizimi