Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I Visual Studio IDE kan du visa och redigera de egenskaper som behövs för att kompilera och skapa ett projekt. Den här informationen omfattar programnamn, tillägg (till exempel DLL, LIB, EXE), kompilatoralternativ, länkalternativ, felsökningsinställningar och anpassade byggsteg.
Du kan visa och ändra dessa egenskaper med hjälp av egenskapssidor. Om du vill komma åt egenskapssidorna väljer duProjektprojektnamn> Egenskaper på huvudmenyn eller högerklickar på projektnoden i Solution Explorer och väljer Egenskaper.
Standardegenskaper
När du skapar ett projekt tilldelar systemet värden för olika egenskaper. Standardinställningarna varierar något beroende på vilken typ av projekt du väljer och vilka alternativ du väljer i appguiden. Ett ATL-projekt (Active Template Library) har till exempel egenskaper relaterade till MIDL-filer (Microsoft Interface Definition Language), men de här egenskaperna saknas i ett grundläggande konsolprogram. Standardegenskaperna visas i fönstret Avancerat i fönstret Egenskapssidor :
Tillämpa egenskaper på byggkonfigurationer och målplattformar
Vissa egenskaper, till exempel programnamnet, gäller för alla versionsvariationer och målplattformar, oavsett om det är en felsökning eller versionsversion. Men de flesta egenskaper är konfigurationsberoende. För att generera rätt kod måste kompilatorn känna till både den specifika plattform som programmet körs på och vilka specifika kompilatoralternativ som ska användas. Så när du anger en egenskap är det viktigt att vara uppmärksam på vilken konfiguration och plattform det nya värdet ska gälla för. Ska det endast gälla för felsökning av Win32-versioner, eller ska det även gälla felsökning av ARM64 och Felsökning av x64? Optimeringsegenskapen är som standard inställd på Maximera hastighet (/O2) i en versionskonfiguration, men är inaktiverad i felsökningskonfigurationen.
Du kan alltid se och ändra konfigurationen och plattformen som ett egenskapsvärde ska gälla för. Följande bild visar egenskapssidorna med konfigurations- och plattformsinformationskontrollerna överst. När optimeringsegenskapen anges här gäller den bara för felsökning av Win32-versioner, den för närvarande aktiva konfigurationen, enligt de röda pilarna.
Sidan är öppen för C/C++, Optimering. Inställningen Optimering är inställd på Inaktiverad (/Od), som framhävs. En pil visar kopplingen mellan konfigurationsinställningen på projektegenskapssidan, som är inställd på Aktiv (Debug) och inställningen i lösningskonfigurationens listruta på verktygsfältet, som är inställd på Debugläge. En annan pil anropar relationen mellan inställningen Plattform på projektegenskapssidan, som är inställd på Active(Win32) och inställningen i listrutan Lösningsplattform i verktygsfältet, som är inställd på x86.
Följande bild visar samma projektegenskapssida, men konfigurationen har ändrats till Släpp. Observera det olika värdet för optimeringsegenskapen. Observera också att den aktiva konfigurationen fortfarande är Felsökning. Du kan ange egenskaper för valfri konfiguration här. Det behöver inte vara den aktiva.
Målplattformar
Målplattformen refererar till den typ av enhet och operativsystem som den körbara filen körs på. Du kan skapa ett projekt för mer än en plattform. Vilka målplattformar som är tillgängliga för C++-projekt beror på typen av projekt. De omfattar men är inte begränsade till Win32, x64, ARM, ARM64, Android och iOS. X86-målplattformen som du kan se i Configuration Manager är identisk med Win32 i interna C++-projekt. Win32 innebär 32-bitars Windows och x64 innebär 64-bitars Windows. Mer information om dessa två plattformar finns i Köra 32-bitarsprogram.
Värdet för alla CPU-målplattformar som du kanske ser i Configuration Manager har ingen effekt på interna C++-projekt. Det är bara relevant för C++/CLI och andra .NET-projekttyper. Mer information finns i /CLRIMAGETYPE
(Ange typ av CLR-avbildning).
Mer information om hur du anger egenskaper för en felsökningsversion finns i:
- Projektinställningar för en C++-felsökningskonfiguration
- Inställningar för felsökning och förberedelse
- Felsökningsförberedelse: Visual C++-projekttyper
- Ange symbol (.pdb) och källfiler i Visual Studio-felsökningsprogrammet
Alternativ för C++-kompilator och länkare
C++-kompilator- och länkalternativ finns under noderna C/C++ och Linker i den vänstra rutan under Konfigurationsegenskaper. Dessa alternativ översätts direkt till kommandoradsalternativ som skickas till kompilatorn. Om du vill läsa dokumentation om ett visst alternativ väljer du alternativet i mittenfönstret och trycker på F1. Eller så kan du bläddra i dokumentationen för alla alternativ i MSVC-kompilatoralternativ och MSVC-länkalternativ.
Dialogrutan Egenskapssidor visar endast de egenskapssidor som är relevanta för det aktuella projektet. Om projektet till exempel inte har någon .idl
fil visas inte MIDL-egenskapssidan. Mer information om inställningarna på varje egenskapssida finns i Egenskapssidor (C++).
Katalog- och sökvägsvärden
MSBuild stöder användning av kompileringstidskonstanter för vissa strängvärden, till exempel kataloger och sökvägar som kallas makron. Ett makro kan referera till ett värde som definieras av Visual Studio eller MSBuild-systemet eller till ett användardefinierat värde. Makron ser ut som $(macro-name)
eller %(item-macro-name)
. De visas på egenskapssidorna, där du kan referera till och ändra dem med hjälp av egenskapsredigeraren. Använd makron i stället för hårdkodade värden, till exempel katalogsökvägar. Makron gör det enklare att dela egenskapsinställningar mellan datorer och mellan versioner av Visual Studio. Du kan också bättre se till att dina projektinställningar deltar korrekt i egenskapsarv.
Följande bild visar egenskapssidorna för ett Visual Studio C++-projekt. I den vänstra rutan är regelnVC++ Kataloger markerad, och i den högra rutan visas de egenskaper som är associerade med regeln. Egenskapsvärdena är ofta makron, till exempel $(VC_SourcePath)
:
Sidan VC++-kataloger är öppen, och den innehåller egenskaper för VC++-katalogreglerna. En exempelregel är Källkataloger, som är inställda på $(VC_SourcePath). Det finns regler för bland annat kataloger, bibliotekskataloger, körbara kataloger och så vidare.
Du kan använda egenskapsredigeraren för att visa värdena för alla tillgängliga makron.
Fördefinierade makron
Globala makron
Globala makron gäller för alla objekt i en projektkonfiguration. Ett globalt makro har syntaxen$(name)
. Ett exempel på ett globalt makro är$(VCInstallDir)
, som lagrar rotkatalogen för din Visual Studio-installation. Ett globalt makro motsvarar ettPropertyGroup
i MSBuild.Objektmakron
Objektmakron har syntaxen%(name)
. För en fil gäller ett objektmakron endast för den filen. Du kan till exempel använda%(AdditionalIncludeDirectories)
för att ange inkluderingskataloger som endast gäller för en viss fil. Den här typen av objektmakron motsvarar enItemGroup
metadata i MSBuild. När det används i samband med en projektkonfiguration gäller ett objektmakron för alla filer av en viss typ. Till exempel kan konfigurationsegenskapen C/C++ Preprocessor Definitions ta ett%(PreprocessorDefinitions)
objektmakro som gäller för alla .cpp filer i projektet. Den här typen av objektmakron motsvarar enItemDefinitionGroup
metadata i MSBuild. Mer information finns i Objektdefinitioner.
Användardefinierade makron
Du kan skapa användardefinierade makron som ska användas som variabler i projektversioner. Du kan till exempel skapa ett användardefinierat makro som ger ett värde till ett anpassat byggsteg eller ett anpassat byggverktyg. Ett användardefinierat makro är ett namn/värde-par. I en projektfil använder du notationen $(name)
för att komma åt värdet.
Ett användardefinierat makro lagras i ett egenskapsblad. Om projektet inte redan innehåller ett egenskapsblad kan du skapa ett genom att följa stegen under Dela eller återanvända Visual Studio-projektinställningar.
Skapa ett användardefinierat makro
Öppna fönstret Property Manager . På menyraden väljer du Visa>annanWindows-egenskapshanterare>. Öppna snabbmenyn för ett egenskapsblad (namnet slutar i
.user
) och välj sedan Egenskaper. Dialogrutan Egenskapssidor för egenskapsbladet öppnas.I den vänstra rutan i dialogrutan väljer du Användarmakron. I den högra rutan väljer du knappen Lägg till makro för att öppna dialogrutan Lägg till användarmakro .
I dialogrutan anger du ett namn och värde för makrot. Du kan också markera kryssrutan Ange det här makrot som en miljövariabel i byggmiljön .
Egenskapsredigeraren
Du kan använda egenskapsredigeraren för att ändra vissa strängegenskaper och välja makron som värden. Om du vill komma åt egenskapsredigeraren väljer du en egenskap på en egenskapssida och väljer sedan nedåtpilen till höger. Om listrutan innehåller <Redigera> kan du välja den för att visa egenskapsredigeraren för den egenskapen.
Skärmbild av egenskapssidan för Visual Studio-projekt för VC++ kataloger.
Egenskapsredigeraren för inställningen Inkludera kataloger är öppen. Det visar det utvärderade värdet för Include Directories, som är C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\Include. Den visar de två ärvda värdena: $(VC_IncludePath) och $(WindowsSDK_IncludePath). En kryssruta för "Ärv från förälder eller projektstandarder" är markerad.
I egenskapsredigeraren kan du välja knappen Makron för att visa tillgängliga makron och deras aktuella värden. Följande bild visar egenskapsredigeraren för egenskapen Ytterligare inkludera kataloger efter att knappen Makron har valts . När kryssrutan Ärv från överordnade värden eller projektstandarder är markerad och du lägger till ett nytt värde läggs den till i alla värden som för närvarande ärvs. Om du avmarkerar kryssrutan ersätter det nya värdet de ärvda värdena. I de flesta fall lämnar du kryssrutan markerad.
Egenskapsredigeraren för Include Directories är öppen. Det utvärderade värdet visas tillsammans med de ärvda värdena. En listruta innehåller olika makron och deras värden, till exempel $(CharacterSet) som är inställt på Unicode.
Lägga till en inkluderingskatalog i uppsättningen med standardkataloger
När du lägger till en inkluderingskatalog i ett projekt är det viktigt att inte åsidosätta alla standardkataloger. Det rätta sättet att lägga till en katalog är att lägga till den nya sökvägen, till exempel C:\MyNewIncludeDir\
, och sedan lägga till makrot i egenskapsvärdet $(IncludePath)
.
Bläddra snabbt och sök i alla egenskaper
På egenskapssidan Alla alternativ (under noden Konfigurationsegenskaper>C/C++ i dialogrutan Egenskapssidor ) kan du snabbt bläddra bland och söka efter de egenskaper som är tillgängliga i den aktuella kontexten. Den har en särskild sökruta och en enkel syntax som hjälper dig att filtrera resultat:
Inget prefix: Sök endast i egenskapsnamn (skiftlägesokänslig understräng).
'
/
' eller '-
': Sök endast i kompilatorväxlar (skiftlägesokänsligt prefix).v
: Sök endast i värden (skiftlägesokänslig understräng).
Ange miljövariabler för en version
MSVC-kompilatorn (cl.exe) identifierar vissa miljövariabler, särskilt LIB
, LIBPATH
, PATH
och INCLUDE
. När du skapar med IDE används de egenskaper som anges på egenskapssidan för VC++-kataloger för att ange dessa miljövariabler. Om LIB
värdena , LIBPATH
och INCLUDE
redan har angetts, till exempel av en kommandotolk för utvecklare, ersätts de med värdena för motsvarande MSBuild-egenskaper. Bygget förbereder sedan värdet för den körbara katalogegenskapen VC++ Directories till PATH
. Du kan ange en användardefinierad miljövariabel genom att skapa ett användardefinierat makro och sedan markera kryssrutan Ange makrot som en miljövariabel i byggmiljön.
Ange miljövariabler för en felsökningssession
I den vänstra rutan i dialogrutan Egenskapssidor för projektet expanderar du Konfigurationsegenskaper och väljer sedan Felsökning.
I den högra rutan ändrar du projektinställningarna Miljö eller Sammanfoga miljö och väljer sedan knappen OK .
Artiklar i det här avsnittet
- Dela eller återanvända Visual Studio-projektinställningar
- Egenskapsarv i Visual Studio-projekt
- Ändra egenskaper och mål för C++-projekt utan att ändra projektfilen