Derleyici ve derleme özelliklerini ayarlamaSet compiler and build properties

IDE 'de, bir proje oluşturmak için gereken tüm bilgiler Özelliklerolarak gösterilir.In the IDE, all information that is needed to build a project is exposed as properties. Bu bilgiler, uygulama adı, uzantı (DLL, LIB, EXE), derleyici seçenekleri, bağlayıcı seçenekleri, hata ayıklayıcı ayarları, özel derleme adımları ve diğer birçok şeyi içerir.This information includes the application name, extension (such as DLL, LIB, EXE), compiler options, linker options, debugger settings, custom build steps, and many other things. Genellikle, bu özellikleri görüntülemek ve değiştirmek için özellik sayfalarını kullanırsınız.Typically, you use property pages to view and modify these properties. Özellik sayfalarına erişmek için, ana menüden Proje > ProjectName Özellikler ' i seçin veya Çözüm Gezgini ' de proje düğümüne sağ tıklayıp Özellikler' i seçin.To access the property pages, choose Project > projectname Properties from the main menu, or right-click on the project node in Solution Explorer and choose Properties.

Varsayılan ÖzelliklerDefault properties

Bir proje oluşturduğunuzda, sistem çeşitli özellikler için değerler atar.When you create a project, the system assigns values for various properties. Varsayılanlar proje türüne ve uygulama sihirbazında belirlediğiniz seçeneklere bağlı olarak farklılık gösterir.The defaults vary somewhat depending on the kind of project and what options you choose in the app wizard. Örneğin, bir ATL projesinde MıDL dosyaları ile ilgili özellikler vardır, ancak bunlar temel konsol uygulamasında yok.For example, an ATL project has properties related to MIDL files, but these are absent in a basic console application. Varsayılan Özellikler, özellik sayfalarındaki genel bölmesinde gösterilir:The default properties are shown in the General pane in the Property Pages:

Visual C++ projesi VarsayılanlarıVisual C++ Project Defaults

Derleme yapılandırmalarına ve hedef platformlara Özellikler uygulanıyorApplying properties to build configurations and target platforms

Uygulama adı gibi bazı özellikler, hedef platformdan bağımsız olarak tüm derleme çeşitlemelerine veya bir hata ayıklama ya da yayın derlemesi olup olmamasına bakılmaksızın uygulanır.Some properties, such as the application name, apply to all build variations, regardless of the target platform or whether it is a debug or release build. Ancak özelliklerin çoğu yapılandırmaya bağımlıdır.But most properties are configuration-dependent. Bunun nedeni, derleyicinin programın hangi platforma çalışacağını ve doğru kodu oluşturmak için hangi derleyici seçeneklerini kullanacağınızı bilmesi gerekir.This is because the compiler has to know what specific platform the program will run on and what specific compiler options to use in order to generate the correct code. Bu nedenle, bir özelliği ayarladığınızda, yeni değerin uygulanması gereken yapılandırma ve platforma dikkat etmeniz önemlidir.Therefore, when you set a property, it is important to pay attention to which configuration and platform the new value should apply to. Yalnızca Win32 yapılarında hata ayıklamak için mi, yoksa hata ayıklama ARM ve hata ayıklama x64 için de geçerlidir mı?Should it apply only to Debug Win32 builds, or should it also apply to Debug ARM and Debug x64? Örneğin, optimizasyon özelliği varsayılan olarak, sürüm yapılandırmasındaki Hız (/O2) ekranı en üst düzeye çıkaracak şekilde ayarlanmıştır, ancak hata ayıklama yapılandırmasında devre dışıdır.For example, the Optimization property, by default, is set to Maximize Speed (/O2) in a Release configuration, but is disabled in the Debug configuration.

Özellik sayfaları, her zaman görebileceğiniz ve gerekirse, bir özellik değerinin hangi yapılandırma ve platform için uygulanacağını görmek üzere tasarlanmıştır.The property pages are designed so that you can always see, and if necessary modify, which configuration and platform a property value should apply to. Aşağıdaki çizimde, en üstteki liste kutularındaki yapılandırma ve platform bilgilerine sahip Özellik sayfaları gösterilmektedir.The following illustration shows the property pages with the configuration and platform information in the list boxes at the top. Optimizasyon özelliği burada ayarlandığında, yalnızca kırmızı oklarla gösterildiği gibi etkin yapılandırma olarak gerçekleşen Win32 Derlemeleriyle hata ayıklama için geçerli olur.When the Optimization property is set here, it will apply only to Debug Win32 builds, which happens to be the active configuration, as shown by the red arrows.

Etkin yapılandırmayı gösteren Visual C++ Özellik sayfalarıVisual C++ Property Pages showing active configuration

Aşağıdaki çizimde aynı proje özelliği sayfası görülmektedir, ancak yapılandırma yayın olarak değiştirilmiştir.The following illustration shows the same project property page, but the configuration has been changed to Release. Optimizasyon özelliğinin farklı değerini aklınızda edin.Note the different value for the Optimization property. Ayrıca etkin yapılandırmanın hata ayıklama olduğunu unutmayın.Also note that the active configuration is still Debug. Burada herhangi bir yapılandırmanın özelliklerini ayarlayabilirsiniz; etkin bir tane olması gerekmez.You can set properties for any configuration here; it doesn't have to be the active one.

Yayın yapılandırmasını gösteren Visual C++ Özellik sayfalarıVisual C++ Property Pages showing release config

Hedef platformlarTarget platforms

Hedef platform , yürütülebilir dosyanın çalışacağı cihaz ve/veya işletim sisteminin türünü ifade eder.Target platform refers to the kind of device and/or operating system that the executable will run on. Birden fazla platform için bir proje oluşturabilirsiniz.You can build a project for more than one platform. C++ projeleri için kullanılabilir hedef platformlar proje türüne bağlıdır; Bunlar, Win32, x64, ARM, Android ve iOS 'a dahil değildir ancak bunlarla sınırlı değildir.The available target platforms for C++ projects depend on the kind of project; they include but are not limited to Win32, x64, ARM, Android, and iOS. Configuration Manager görebileceğiniz x86 hedef platformu, yerel C++ projelerinde Win32 ile aynıdır.The x86 target platform that you might see in Configuration Manager is identical to Win32 in native C++ projects. Win32, 32 bit Windows ve x64 için 64 bit Windows anlamına gelir.Win32 means 32-bit Windows and x64 means 64-bit Windows. Bu iki platform hakkında daha fazla bilgi için bkz. 32 bitlik uygulamalar çalıştırma.For more information about these two platforms, see Running 32-bit applications.

Configuration Manager görebileceğiniz herhangi bir CPU hedefi platformun değeri, yerel C++ projeleri üzerinde hiçbir etkiye sahip değildir; C++/CLı ve diğer .NET proje türleri için geçerlidir.The Any CPU target platform value that you might see in Configuration Manager has no effect on native C++ projects; it is relevant for C++/CLI and other .NET project types. Daha fazla bilgi için bkz. /Clrimagetype (clr görüntü türünü belirt).For more information, see /CLRIMAGETYPE (Specify Type of CLR Image).

Hata ayıklama derlemesinin özelliklerini ayarlama hakkında daha fazla bilgi için bkz.:For more information about setting properties for a Debug build, see:

C++ derleyicisi ve bağlayıcı seçenekleriC++ compiler and linker options

C++ derleyicisi ve bağlayıcı seçenekleri, yapılandırma özelliklerialtında sol bölmedeki C/C++ ve bağlayıcı düğümleri altında bulunur.C++ compiler and linker options are located under the C/C++ and Linker nodes in the left pane under Configuration Properties. Bu, doğrudan derleyiciye geçirilecek komut satırı seçeneklerine çeviri yapar.These translate directly to command-line options that will be passed to the compiler. Belirli bir seçeneğe ilişkin belgeleri okumak için orta bölmedeki seçeneğini belirleyin ve F1tuşuna basın.To read documentation about a specific option, select the option in the center pane and press F1. Ya da MSVC derleyici seçenekleri ve MSVC bağlayıcı seçenekleri'ndeki tüm seçenekler için belgelere gözatabilmeniz gerekir.Or, you can browse documentation for all the options at MSVC Compiler Options and MSVC Linker Options.

Özellik sayfaları iletişim kutusu yalnızca geçerli projeyle ilgili olan özellik sayfalarını gösterir.The Property Pages dialog box shows only the property pages that are relevant to the current project. Örneğin, projede bir .idl dosyası yoksa, MIDL özellik sayfası görüntülenmez.For example, if the project does not have an .idl file, the MIDL property page is not displayed. Her özellik sayfalarında ayarı hakkında daha fazla bilgi için bkz. Özellik sayfaları (C++).For more information about the setting on each property pages, see Property Pages (C++).

Dizin ve yol değerleriDirectory and path values

MSBuild, belirli dize değerleri için "Makrolar" adlı derleme zamanı sabitlerinin kullanımını, dizinler ve yollar içerir.MSBuild supports the use of compile-time constants called "macros" for certain string values include directories and paths. Bunlar özellik sayfalarında gösterilir. burada, özellik düzenleyicisinikullanarak bunları bulabilirsiniz ve değiştirebilirsiniz.These are exposed in the property pages, where you can refer to and modify them by using the Property Editor.

Aşağıdaki çizimde, bir Visual Studio C++ projesinin Özellik sayfaları gösterilmektedir.The following illustration shows the property pages for a Visual Studio C++ project. Sol bölmede, VC + + dizinleri kuralı seçilidir ve sağ bölmede bu kuralla ilişkili özellikler listelenir.In the left pane, the VC++ Directories rule is selected, and the right pane lists the properties that are associated with that rule. $(...)Değerler makrolarolarak adlandırılır.The $(...) values are called macros. Makro , Visual Studio veya MSBuild sistemi tarafından tanımlanan bir değere veya Kullanıcı tanımlı bir değere başvurabilen bir derleme zamanı sabiti.A macro is a compile-time constant that can refer to a value that is defined by Visual Studio or the MSBuild system, or to a user-defined value. Dizin yolları gibi sabit kodlu değerler yerine makroları kullanarak, Özellikler ayarlarını makineler arasında ve Visual Studio sürümleri arasında daha kolay bir şekilde paylaşabilir ve proje ayarlarınızın özellik Devralmadadoğru bir şekilde katılmasını sağlayabilirsiniz.By using macros instead of hard-coded values such as directory paths, you can more easily share property settings between machines and between versions of Visual Studio, and you can better ensure that your project settings participate correctly in property inheritance.

Proje özellik sayfalarıProject property pages

Tüm kullanılabilir makroların değerlerini görüntülemek için özellik düzenleyicisini kullanabilirsiniz.You can use the Property Editor to view the values of all available macros.

Önceden tanımlanmış makrolarPredefined macros

genel makrolarglobal macros
Bir proje yapılandırmasındaki tüm öğelere uygulanır.Applies to all items in a project configuration. Sözdizimi vardır $(name) .Has the syntax $(name). $(VCInstallDir)Visual Studio yüklemenizin kök dizinini depolayan genel bir makroya bir örnektir.An example of a global macro is $(VCInstallDir), which stores the root directory of your Visual Studio installation. Genel makro, MSBuild içindeki bir öğesine karşılık gelir PropertyGroup .A global macro corresponds to a PropertyGroup in MSBuild.

öğe makrolarıitem macros
Sözdizimi vardır %(name) .Has the syntax %(name). Bir dosya için, bir öğe makrosu yalnızca o dosya için geçerlidir — Örneğin, %(AdditionalIncludeDirectories) yalnızca belirli bir dosya için geçerli olan içerme dizinlerini belirtmek için öğesini kullanabilirsiniz.For a file, an item macro applies only to that file—for example, you can use %(AdditionalIncludeDirectories) to specify include directories that apply only to a particular file. Bu tür bir öğe makrosu ItemGroup MSBuild içindeki bir meta veriye karşılık gelir.This kind of item macro corresponds to an ItemGroup metadata in MSBuild. Bir proje yapılandırması bağlamında kullanıldığında, öğe makrosu belirli bir türdeki tüm dosyalar için geçerli olur.When it's used in the context of a project configuration, an item macro applies to all files of a certain type. Örneğin, C/C++ Önişlemci tanımları yapılandırma özelliği, %(PreprocessorDefinitions) projedeki tüm. cpp dosyaları için geçerli olan bir öğe makrosunu alabilir.For example, the C/C++ Preprocessor Definitions configuration property can take a %(PreprocessorDefinitions) item macro that applies to all .cpp files in the project. Bu tür bir öğe makrosu ItemDefinitionGroup MSBuild içindeki bir meta veriye karşılık gelir.This kind of item macro corresponds to an ItemDefinitionGroup metadata in MSBuild. Daha fazla bilgi için bkz. öğe tanımları.For more information, see Item Definitions.

Kullanıcı tanımlı makrolarUser-defined macros

Proje yapılarında değişken olarak kullanmak için Kullanıcı tanımlı makrolar oluşturabilirsiniz.You can create user-defined macros to use as variables in project builds. Örneğin, bir özel yapı adımına veya özel yapı aracına değer sağlayan kullanıcı tanımlı bir makro oluşturabilirsiniz.For example, you could create a user-defined macro that provides a value to a custom build step or a custom build tool. Kullanıcı tanımlı makro bir ad/değer çiftidir.A user-defined macro is a name/value pair. Bir proje dosyasında, değere erişmek için $ (ad) gösterimini kullanın.In a project file, use the $(name) notation to access the value.

Kullanıcı tanımlı makrolar bir özellik sayfasında depolanır.A user-defined macro is stored in a property sheet. Projeniz zaten bir özellik sayfası içermiyorsa, Visual Studio proje ayarlarını paylaşma veya yeniden kullanmabölümündeki adımları izleyerek bir tane oluşturabilirsiniz.If your project does not already contain a property sheet, you can create one by following the steps under Share or reuse Visual Studio project settings.

Kullanıcı tanımlı makro oluşturmak içinTo create a user-defined macro

  1. Özellik Yöneticisi penceresini açın.Open the Property Manager window. (Menü çubuğunda Görünüm > ' ü seçin. Özellik Yöneticisi veya View > diğer Windows > Özellik Yöneticisigörüntüleyin.) Bir özellik sayfası için kısayol menüsünü açın (adı. User ile biter) ve ardından Özellikler' i seçin.(On the menu bar, choose View > Property Manager or View > Other Windows > Property Manager.) Open the shortcut menu for a property sheet (its name ends in .user) and then choose Properties. Bu özellik sayfası için Özellik sayfaları iletişim kutusu açılır.The Property Pages dialog box for that property sheet opens.

  2. İletişim kutusunun sol bölmesinde Kullanıcı makroları' nı seçin.In the left pane of the dialog box, select User Macros. Sağ bölmede, makro Ekle düğmesini seçerek Kullanıcı makrosu Ekle iletişim kutusunu açın.In the right pane, choose the Add Macro button to open the Add User Macro dialog box.

  3. İletişim kutusunda, makro için bir ad ve değer belirtin.In the dialog box, specify a name and value for the macro. İsteğe bağlı olarak, Bu makroyu yapı ortamında bir ortam değişkeni olarak ayarla onay kutusunu seçin.Optionally, select the Set this macro as an environment variable in the build environment check box.

Özellik DüzenleyicisiProperty Editor

Belirli dize özelliklerini değiştirmek ve makroları değer olarak seçmek için Özellik Düzenleyicisi'ni kullanabilirsiniz.You can use the Property Editor to modify certain string properties and select macros as values. Özellik Düzenleyicisi'ne erişmek için, özellik sayfasında bir özellik seçin ve sonra sağdaki aşağı ok düğmesini seçin.To access the Property Editor, select a property on a property page and then choose the down arrow button on the right. Açılır liste içeriyorsa <Edit> , bu özellik Için özellik düzenleyicisini göstermek üzere bu seçeneği belirleyebilirsiniz.If the drop-down list contains <Edit>, then you can choose it to display the Property Editor for that property.

Özellik Düzenleyicisi 'ne erişmek için bir özellik açılan denetimi kullanılırA property drop-down control is used to access the Property Editor

Özellik Düzenleyicisi 'nde, kullanılabilir makroları ve bunların geçerli değerlerini görüntülemek için makrolar düğmesini seçebilirsiniz.In the Property Editor, you can choose the Macros button to view the available macros and their current values. Aşağıdaki çizimde, makrolar düğmesi seçildikten sonra ek Içerme dizinleri özelliğinin Özellik Düzenleyicisi gösterilmektedir.The following illustration shows the Property Editor for the Additional Include Directories property after the Macros button was chosen. Üst veya proje varsayılanlarından devralma onay kutusu seçildiğinde ve yeni bir değer eklediğinizde, o anda devralınmakta olan tüm değerlere eklenir.When the Inherit from parent or project defaults check box is selected and you add a new value, it is appended to any values that are currently being inherited. Onay kutusunun işaretini kaldırırsanız, yeni değeriniz devralınan değerlerin yerini alır.If you clear the check box, your new value replaces the inherited values. Çoğu durumda, onay kutusunu seçili bırakın.In most cases, leave the check box selected.

Dizinleri Içer özelliği için özellik Düzenleyici iletişim kutusuThe Property Editor dialog for the Include Directories property

Varsayılan dizinler kümesine bir içerme dizini ekleyinAdd an include directory to the set of default directories

Bir projeye ekleme dizini eklediğinizde, tüm varsayılan dizinleri geçersiz kılmamak önemlidir.When you add an include directory to a project, it is important not to override all the default directories. Dizin eklemenin doğru yolu, örneğin "C:\MyNewIncludeDir" gibi yeni yolu eklemek " ve ardından $ (IncludePath) makrosunu özellik değerine eklemek içindir.The correct way to add a directory is to append the new path, for example "C:\MyNewIncludeDir", and then to Append the $(IncludePath) macro to the property value.

Tüm özelliklere hızla gözatıp aramaQuickly browse and search all properties

Tüm seçenekler Özellik sayfası ( Özellik sayfaları iletişim kutusunda yapılandırma özellikleri | C/C++ düğümü altında), geçerli bağlamda kullanılabilen özelliklere gözatmanız ve bunları aramanız için hızlı bir yol sağlar.The All Options property page (under the Configuration Properties | C/C++ node in the Property Pages dialog box) provides a quick way to browse and search the properties that are available in the current context. Özel bir arama kutusu ve sonuçlara filtre uygulamanıza yardımcı olacak basit bir sözdizimi vardır:It has a special search box and a simple syntax to help you filter results:

Önek yok:No prefix:
Yalnızca özellik adlarında arayın (büyük/küçük harf duyarsız alt dize).Search in property names only (case-insensitive substring).

'/' veya '-' :'/' or '-' :
Yalnızca derleyici anahtarlarında arayın (büyük/küçük harf duyarsız önek)Search only in compiler switches (case-insensitive prefix)

v:v:
Yalnızca değerlerde arayın (büyük/küçük harf duyarsız alt dize).Search only in values (case-insensitive substring).

Yapı için ortam değişkenlerini ayarlamaSet environment variables for a build

MSVC derleyicisi (cl.exe), özel olarak LıB, LıBPATH, PATH ve ıNCLUDE gibi belirli ortam değişkenlerini tanır.The MSVC compiler (cl.exe) recognizes certain environment variables, specifically LIB, LIBPATH, PATH, and INCLUDE. IDE ile derleme yaparken, bu ortam değişkenlerini ayarlamak için VC + + dizinleri Özellik sayfası Özellik sayfasında ayarlanan özellikler kullanılır.When you build with the IDE, the properties that are set in the VC++ Directories Property Page property page are used to set those environment variables. LIB, LIBPATH ve INCLUDE değerleri zaten ayarlanmışsa (örneğin, bir Geliştirici Komutu İstemi ile), bunlar karşılık gelen MSBuild özelliklerinin değerleriyle değiştirilir.If LIB, LIBPATH, and INCLUDE values have already been set, for example by a Developer Command Prompt, they are replaced with the values of the corresponding MSBuild properties. Yapı daha sonra, VC++ Dizinleri yürütülebilir dizinler özelliğinin değerini PATH öğesinin başına ekler.The build then prepends the value of the VC++ Directories executable directories property to PATH. Kullanıcı tanımlı bir makro oluşturup Bu makroyu yapı ortamında bir ortam değişkeni olarak ayarlayazılı kutuyu işaretleyerek Kullanıcı tanımlı bir ortam değişkeni ayarlayabilirsiniz.You can set a user-defined environment variable by creating a user-defined macro and then checking the box that says Set this macro as an environment variable in the build environment.

Hata ayıklama oturumu için ortam değişkenlerini ayarlamaSet environment variables for a debugging session

Projenin Özellik sayfaları iletişim kutusunun sol bölmesinde yapılandırma özellikleri ' ni genişletin ve ardından hata ayıklama' yı seçin.In the left pane of the project's Property Pages dialog box, expand Configuration Properties and then select Debugging.

Sağ bölmede, ortam veya birleştirme ortamı proje ayarlarını değiştirin ve Tamam düğmesini seçin.In the right pane, modify the Environment or Merge Environment project settings and then choose the OK button.

Bu bölümdeIn this section

Visual Studio projelerinin ayarlarını paylaşma veya yeniden kullanmaShare or reuse Visual Studio project settings
Paylaşılabilecek veya yeniden kullanılabilecek özel yapı ayarları ile bir. props dosyası oluşturma.How to create a .props file with custom build settings that can be shared or reused.

Proje özelliği devralmaProject property inheritance
Yapı işlemindeki. props,. targets,. vcxproj dosyaları ve ortam değişkenleri için değerlendirme sırasını açıklar.Describes the order of evaluation for the .props, .targets, .vcxproj files and environment variables in the build process.

Proje dosyasını değiştirmeden özellikleri ve hedefleri değiştirmeModify properties and targets without changing the project file
Proje dosyasını değiştirmek zorunda kalmadan geçici derleme ayarları oluşturma.How to create temporary build settings without having to modify a project file.

Ayrıca bkz.See also

Visual Studio projeleri-C++Visual Studio Projects - C++
.vcxproj ve .props dosya yapısı.vcxproj and .props file structure
Özellik sayfası XML dosyalarıProperty page XML files