Is there a way to add extra preprocessor #defin开发者_如何学JAVAe in devenv command line?
I am not entirely sure what you mean by vcbuild command line but if you mean the Visual C++ command line compiler then you can add defines by add /Dxxxx, e.g.
cl.exe /DSHAREWARE ....
Additional answer based on comments:
You should be able to set the CL environment variable with the extra preprocessor define:
SET CL=/DSHAREWARE
devenv ....
Mere information can be found at MSDN
in your project settings, add the following preprocessor definition:
$(MyPreprocessorDefinitions);
then in your *.bat file, use
REM #define MY_DEF
set MyPreprocessorDefinitions=MY_DEF
devenv.exe ...
REM #undefine MY_DEF
set MyPreprocessorDefinitions=
The #defines are defined in your Visual Studio project file (.dsp or .vcproj file). This is a simple text file. So you could edit the project file from a script, then call devenv.exe.
In my case, I needed to use devenv for other reasons, (and was running in cygwin, so i had sed).
I set a Compilation symbol in the project's properties SED_REPLACE_THIS
and then used sed to set it to something meaningful (ie: DONT_CRASH_AS_MUCH
)
sed -i 's/SED_REPLACE_THIS/DONT_CRASH_AS_MUCH/g' project.csproj
I couldn't find a way without modifying solution or project files so I came up with the following:
- Create empty file as part of build e.g.
feature_flag.h
- Replace
#if FEATURE_FLAG
with#if !__has_include("feature_flag.h")
- Remove
feature_flag.h
at the end of the build
It's not using #define but it does use the preprocessor which was what I needed.
精彩评论