{"id":2091,"date":"2012-12-17T14:20:42","date_gmt":"2012-12-17T22:20:42","guid":{"rendered":"http:\/\/www.curlybrace.com\/words\/?p=2091"},"modified":"2014-11-23T17:21:25","modified_gmt":"2014-11-24T01:21:25","slug":"setting-global-c-include-paths-in-visual-studio-2012-and-2011-and-2010","status":"publish","type":"post","link":"https:\/\/www.curlybrace.com\/words\/2012\/12\/setting-global-c-include-paths-in-visual-studio-2012-and-2011-and-2010\/","title":{"rendered":"Setting Global C++ Include Paths in Visual Studio 2012 (and 2013, and 2010)"},"content":{"rendered":"<p>Starting with Visual Studio 2010, Microsoft decided to make life hard on C++ developers. \u00a0System-wide include path settings used to be accessed through Tools | Options | Projects and Solutions | VC++ Directories. \u00a0However, that option is gone:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2092\" alt=\"VS2012_ToolsOptionsDirectories\" src=\"http:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2012\/12\/VS2012_ToolsOptionsDirectories.png\" width=\"606\" height=\"162\" srcset=\"https:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2012\/12\/VS2012_ToolsOptionsDirectories.png 606w, https:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2012\/12\/VS2012_ToolsOptionsDirectories-300x80.png 300w\" sizes=\"auto, (max-width: 606px) 100vw, 606px\" \/><\/p>\n<p>Instead, the system-wide include paths are now located within the &#8216;Properties&#8217; interface. \u00a0To access it, select View | Property Manager. \u00a0No dialog will appear yet. Instead, the Property Manager appears as a tab along with the Solution Explorer:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2093\" alt=\"VS2012_OptionsPropertyManager\" src=\"http:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2012\/12\/VS2012_OptionsPropertyManager.png\" width=\"302\" height=\"136\" srcset=\"https:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2012\/12\/VS2012_OptionsPropertyManager.png 302w, https:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2012\/12\/VS2012_OptionsPropertyManager-300x135.png 300w\" sizes=\"auto, (max-width: 302px) 100vw, 302px\" \/><\/p>\n<p style=\"padding-left: 30px;\">\n  <strong>Note: \u00a0The Property Manager won&#8217;t contain anything unless a solution is loaded.<\/strong>\n<\/p>\n<p>If the Property Manager is missing, it can be shown by selecting View | Other Windows | Property Manager from the menu.<\/p>\n<p>Now, expand one of your projects, then expand Debug | Win32 or Release | Win32:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2094\" alt=\"VS2012_PropertyPageProjectExpanded\" src=\"http:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2012\/12\/VS2012_PropertyPageProjectExpanded.png\" width=\"231\" height=\"208\" \/><\/p>\n<p>Right click Microsoft.Cpp.Win32.user and select Properties: <img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2095\" alt=\"VS2012_PropertyPageProjectExpandedMenu\" src=\"http:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2012\/12\/VS2012_PropertyPageProjectExpandedMenu.png\" width=\"531\" height=\"249\" srcset=\"https:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2012\/12\/VS2012_PropertyPageProjectExpandedMenu.png 531w, https:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2012\/12\/VS2012_PropertyPageProjectExpandedMenu-300x140.png 300w\" sizes=\"auto, (max-width: 531px) 100vw, 531px\" \/><\/p>\n<p>This brings up the Microsoft.Cpp.Win32.User Property Pages dialog, which should look familiar enough:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2096\" alt=\"VS2012_Win32UserPropertyPage\" src=\"http:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2012\/12\/VS2012_Win32UserPropertyPage.png\" width=\"681\" height=\"208\" srcset=\"https:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2012\/12\/VS2012_Win32UserPropertyPage.png 681w, https:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2012\/12\/VS2012_Win32UserPropertyPage-300x91.png 300w\" sizes=\"auto, (max-width: 681px) 100vw, 681px\" \/><\/p>\n<h3>Alternate Access The properties can be accessed directly as an XML file by editing<\/h3>\n<p><tt>%LOCALAPPDATA%\\Microsoft\\MSBuild\\v4.0\\Microsoft.Cpp.Win32.user.props<\/tt><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2012\/12\/VS2012_Win32UserPropsXML.png\" alt=\"VS2012_Win32UserPropsXML\" width=\"660\" height=\"134\" class=\"size-full wp-image-2104\" srcset=\"https:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2012\/12\/VS2012_Win32UserPropsXML.png 660w, https:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2012\/12\/VS2012_Win32UserPropsXML-300x60.png 300w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><\/p>\n<h3>Rant: None of this makes any sense whatsoever. Why do I have to have a solution loaded before I can edit the system-wide (technically user-wide) path settings? \u00a0The old system made sense: project-specific include paths were set in the properties of individual projects, and system include paths were set through the Tools menu. The layout is irritating, forgettable, and, most importantly, it makes absolutely no sense to access system settings by clicking through your own projects!<\/h3>\n","protected":false},"excerpt":{"rendered":"<p>Starting with Visual Studio 2010, Microsoft decided to make life hard on C++ developers. \u00a0System-wide include path settings used to be accessed through Tools | Options | Projects and Solutions | VC++ Directories. \u00a0However, that option is gone: Instead, the &hellip; <a href=\"https:\/\/www.curlybrace.com\/words\/2012\/12\/setting-global-c-include-paths-in-visual-studio-2012-and-2011-and-2010\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,283],"tags":[],"class_list":["post-2091","post","type-post","status-publish","format-standard","hentry","category-technology","category-windows-technology"],"_links":{"self":[{"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/posts\/2091","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/comments?post=2091"}],"version-history":[{"count":17,"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/posts\/2091\/revisions"}],"predecessor-version":[{"id":2281,"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/posts\/2091\/revisions\/2281"}],"wp:attachment":[{"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/media?parent=2091"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/categories?post=2091"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/tags?post=2091"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}