Background:
I found some answers for this question but they were focused more on earlier versions of visual studio for which it seems some things have changed. My issue is I've created a new build configuration called 'Profile' for which I would like to have a corresponding macro for similar to how visual studio's 'Debug' build has '_DEBUG' macro.
Question:
Where, in visual studio 2015, would I go about declaring a macro connected to my build configuration so I can use #if, #ifelse and other defines with the macro in my code? This relates to C++.
Related
I have a VS 2010 C++/CLI project that I imported into VS 2015. Because it links against some VS 2010 C++ libraries that I don't control, I need it to be compiled with the VS 2010 compiler. When I imported the project to VS 2015, I told VS not to upgrade the project (don't remember the exact options, but the project now says "Project Name (Visual Studio 2010)" in Solution Explorer). In the project properties, the Platform Toolset is listed as "Visual Studio 2010 (v100)":
One of the libraries I'm using has a header with some ifdefs that show an error if _MSC_VER isn't one of the supported versions (Visual C++ 6.0-10.0). That error is being generated for this project, and I've determined that the _MSC_VER showing up during build in Intellisense is 1900 (the default for VS 2015).
How do I get the project to build with the 2010 version of the C++ compiler (_MSC_VER 1600)? Isn't that what the Platform Toolset option is supposed to control?
I misunderstood what was going on in Visual Studio. The build was actually working fine; the error being generated was coming from Intellisense. There's a known bug in Visual Studio where Intellisense doesn't properly reflect the _MSC_VER specified by the project's selected Platform Toolset. I'll leave the question up in case anyone else runs into this problem.
I saw questions similar to this for older versions of Visual Studio but not this latest version. I am following a course on Lynda.com and basically the instructor is trying to use C++ in a pure form that will look the same for students using a visual IDE on Mac. Anyway, the instructor sets up a Working project for teaching the language constructs and such. He right clicks on the project in Visual Studio and under C++ there is Pre-processor section.
I should note that he is using VS 2013 Community Edition. I have a more fully featured version of VS 2015. I don't see that option for defining pre-processor directives on a "project" basis. MS won't let me install 2 copies of VS 2015, but maybe it will let me install VS 2013.
Still, I hope my question makes enough sense as to what we are trying to accomplish, so that I can find the option in VS 2015 Enterprise.
Thanks,
Bruce
You would need to at least add a .cpp file to your Source Files folder in the the current project that you right will click. That should give you the option you are looking for in Visual Studio 2015.
Right click on your project. Select Properties. You should see the below menu where you can navigate to Configuration Properties > C/C++ > Preprocessor.
This is how I see it in my Visual Studio Enterprise 2015.
Is this what you're looking for?
I have a Visual Studio C++ Win32 Console application project. In the properties of the project I have set a Preprocessor definition VERSION=$(Version) and currently I use this macro in the code. The only problem is that the $(Version) appears to resolve to 1.0.0.0. I have searched the web and the project properties but I couldn't find the appropriate way to set this via the IDE. Also I tried to set the Linker-Version property but it didn't help as the $(Version) still 1.0.0.0.
I have the Visual Studio 2010 installed in my system. However, my company has a different central build system and uses the compiler from Visual Studio 6. Is it possible for me to use this compiler for compiling my C++ projects in Visual Studio 2010? If yes, where to configure this?
I checked in the project settings dialog, but couldn't find any option for this. I know how to use the old compiler from the command line and I don't want to do that.
The Daffodil for Visual Studio extension (http://daffodil.codeplex.com) allows you to set any installed toolset/compiler under Project settings in VS 2010.
A found an article (Extend the Visual Studio Build Process) that explained how to override build targets in a C# project file. I tested this, and it seems to work well. However, what I really want to do is override a build target in a C++ project (with Visual Studio 2005). The problem is that C++ projects use different XML. Instead of having <project> as the root, C++ projects have <VisualStudioProject> as the root. When I add the <target> tag to a C++ project file and try to open the project in Visual Studio, I get this error:
The following error has occurred during XML parsing:
File:
[Path to Project File].vcproj
Line: 304 Column: 30 Error Message:
Element 'Target' is unexpected
according to content model of parent
element 'VisualStudioProject'.
The file
'[Path to Project File].vcproj'
has failed to load.
How can I override a Visual Studio build target for a C++ project? Or is there a better way to customize what happens during a C++ build?
In Visual Studio 2005 there are no build "targets" for C++ builds as the C++ build system does not use MSBuild.
However, VC++2005 defines the Pre-Build, Pre-Link, Post-Build Events as well as the ability to add a Custom Build Step for non-standard files.
You may be able to achieve what you want using these settings.
Note:
VC++2005 projects can be built using MSBuild, it's just not what Visual Studio does out of the box.
Visual Studio 2010 uses MSBuild for all project types.