Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 从Visual Studio 2010中的预生成事件命令行访问%(预处理定义)_Visual Studio 2010_Macros_Preprocessor - Fatal编程技术网

Visual studio 2010 从Visual Studio 2010中的预生成事件命令行访问%(预处理定义)

Visual studio 2010 从Visual Studio 2010中的预生成事件命令行访问%(预处理定义),visual-studio-2010,macros,preprocessor,Visual Studio 2010,Macros,Preprocessor,我在VisualStudio2010构建过程中遇到了一些困难。简单地说,我想通过预构建事件命令行将为当前构建配置设置的预处理器定义传递到批处理文件中 预处理器定义位于C/C++>预处理器>预处理器定义下的项目属性中。在该属性表中,我确实将宏的名称视为%(PreprocessOrdDefinitions),但是该宏不会显示在Build Events>Pre Build Event的宏列表中 是否有任何方法可以从“生成事件”>“预生成事件”>“命令行”中访问%(预处理定义) 谢谢 其他详细信息: 让

我在VisualStudio2010构建过程中遇到了一些困难。简单地说,我想通过预构建事件命令行将为当前构建配置设置的预处理器定义传递到批处理文件中

预处理器定义位于C/C++>预处理器>预处理器定义下的项目属性中。在该属性表中,我确实将宏的名称视为%(PreprocessOrdDefinitions),但是该宏不会显示在Build Events>Pre Build Event的宏列表中

是否有任何方法可以从“生成事件”>“预生成事件”>“命令行”中访问%(预处理定义)

谢谢

其他详细信息:

让我说得更具体一些……我正在使用一个稍微修改过的vs android版本,以便从VisualStudio中构建android应用程序。我曾经编辑过vs android源代码,为构建过程添加了我们需要的特定元素。我注意到预处理定义位于一个名为“ClCompile”的ItemDefinition组中。我似乎无法从.props或.xml构建文件中使用%(ClCompile.PreprocessorDefinitions)访问定义


有没有一种方法可以告诉VisualStudio将%(ClCompile.PreprocessorDefinitions)作为环境的一部分,这样它可能会显示为$(PreprocessorDefinitions)?如果是这样的话,我还无法找出原因。

是的,很难。它是ClCompile目标的一个属性,对于项目中的每个.cpp文件都可能不同。预构建太早,属性值不明确。很难想出一个不需要大手术的替代方案。复制是一个草率但简单的解决方案。非常感谢@Hans,它看起来确实很有挑战性。也许唯一“干净”的方法是为特定配置提供一组解决方案范围的定义,并在构建时将它们与ClCompile特定的定义合并。然后,我可以传入特定于配置的定义,该定义将让脚本知道如何处理每个配置。不过,我不知道在VisualStudio2010中有什么内置的方法可以做到这一点,所以我可能必须调整vs android,以某种方式为每个配置添加一个额外的字符串列表。