[ACCEPTED]-Using MSBuild to compile a single cpp file-msbuild
MSBuild in VS2008 uses VCBuild to do the 24 actual work, and VCBuild has no option I 23 know of to build a single file. (with VS2010 22 this has changed, there you can actually 21 invoke a compile of a single file using 20 something like
I can come up with some 19 ideas that will certainly work, but require 18 some extra work and are not very straightforward:
you 17 can msbuild have invoke devenv to compile 16 a single file:
devenv myproject.sln /Command "File.OpenFile myfile.cpp" /Command "Build.Compile" /Command "File.Exit"
this does open the IDE window 15 though, and will make it pretty hard to 14 figure out if the compile actually succeeded 13 or not.
have msbuild invoke a script/program 12 which parses the vcproj and makes a copy 11 with all sources under the Source File section 10 removed except that one file you want to 9 compile. Then have msbuild build that project 8 using vcbuild /pass1 (pass1=compile only, no 7 link).
always keep a response file having 6 the same options as your vcproj and let 5 msbuild invoke cl to compile the single 4 file, using the response file. (making the 3 response file is as simple as opening the 2 project properties in VS, going to C++->CommandLine 1 and copying everything listed)
You can do it like this (which is how VS 5 invokes MSBuild when you Ctrl+F7 on a file):
msbuild MyProject.vcxproj /t:ClCompile /p:SelectedFiles=MySourceFile.cpp
Note 4 that the
SelectedFiles property needs to match the
<ClCompile> item 3 in the .vcxproj, so it may be something 2 more like
..\path\to\MySourceFile.cpp, depending on how your files 1 are organized.
More Related questions