开发者

how do I add preprocessor #define in devenv command line?

开发者 https://www.devze.com 2022-12-12 11:54 出处:网络
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 compil

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号