在多个平台的解决方案中构建 visual studio 个 C++ 项目
Build visual studio C++ project within solution for multiple platforms
我有一个 Visual Studio 解决方案,其中包含多个 C# 项目和一个 C++ 项目。
C++ 项目已正确配置为同时为 x64 和 win32 构建(具有单独的输出目录、适用于 32 位和 64 位的二进制文件等),默认配置为 x64。 C# 项目配置为 Any CPU.
在构建整个解决方案时,如何配置我的解决方案以构建适用于 x64 和 win32 的 C++ 项目?
P.S.: 批量构建不会在这种情况下完成工作,因为我需要以任何克隆 repo 的方式配置它,无需任何额外设置即可正确构建
How can I configure my solution to build the C++ project for both x64
and win32 when building the entire solution?
请使用批量构建来构建您的解决方案。
1) 首先右键单击您的解决方案并选择 Batch Build.
2)其次,勾选你要构建的C++项目。然后您可以检查项目的 64 位和 32 位,您还可以 select Debug
或 Release
为 Configuration。最后点击Build或者Rebuild,可以同时生成不同版本的输出文件。
3)完成后,请打开解决方案文件夹。在我这边,Debug
或 Release
文件夹仅适用于 32 位 ,而 x64
文件夹仅适用于 64 位.
更新 1
由于您不想配置 VS 设置然后使用 Batch Build,我认为您可以在 xxxx.vcxproj
文件中使用自定义构建目标。
请将这些目标添加到整个解决方案中所有 C++ 项目的 xxxx.vcxproj
。
<Target Name="BuildFunction" AfterTargets="Build">
<MSBuild Condition="'$(Platform)'=='Win32'" Projects="$(MSBuildProjectFile)" Properties="Platform=x64;PlatFormTarget=x64" RunEachTargetSeparately="true" />
<MSBuild Condition="'$(Platform)'=='x64'" Projects="$(MSBuildProjectFile)" Properties="Platform=Win32;PlatFormTarget=x86" RunEachTargetSeparately="true" />
</Target>
<Target Name="CleanAll" AfterTargets="Clean">
<MSBuild Condition="'$(Platform)'=='Win32'" Projects="$(MSBuildProjectFile)" Targets="Clean" Properties="Platform=x64;PlatFormTarget=x64" RunEachTargetSeparately="true" />
<MSBuild Condition="'$(Platform)'=='x64'" Projects="$(MSBuildProjectFile)" Targets="Clean" Properties="Platform=Win32;PlatFormTarget=x86" RunEachTargetSeparately="true" />
</Target>
这些目标取决于 Build
或 Clean
目标。所以当你构建项目时,它们总是会在后面执行,并将项目构建到其他版本中。
此外,此方法与您的解决方案相关联,因此当其他人克隆您的解决方案时,直接从您的脚本构建或在 VS IDE 中单击 构建 然后您会在解决方案中看到文件的 x64
和 x86
版本。
希望对您有所帮助。
我有一个 Visual Studio 解决方案,其中包含多个 C# 项目和一个 C++ 项目。
C++ 项目已正确配置为同时为 x64 和 win32 构建(具有单独的输出目录、适用于 32 位和 64 位的二进制文件等),默认配置为 x64。 C# 项目配置为 Any CPU.
在构建整个解决方案时,如何配置我的解决方案以构建适用于 x64 和 win32 的 C++ 项目?
P.S.: 批量构建不会在这种情况下完成工作,因为我需要以任何克隆 repo 的方式配置它,无需任何额外设置即可正确构建
How can I configure my solution to build the C++ project for both x64 and win32 when building the entire solution?
请使用批量构建来构建您的解决方案。
1) 首先右键单击您的解决方案并选择 Batch Build.
2)其次,勾选你要构建的C++项目。然后您可以检查项目的 64 位和 32 位,您还可以 select Debug
或 Release
为 Configuration。最后点击Build或者Rebuild,可以同时生成不同版本的输出文件。
3)完成后,请打开解决方案文件夹。在我这边,Debug
或 Release
文件夹仅适用于 32 位 ,而 x64
文件夹仅适用于 64 位.
更新 1
由于您不想配置 VS 设置然后使用 Batch Build,我认为您可以在 xxxx.vcxproj
文件中使用自定义构建目标。
请将这些目标添加到整个解决方案中所有 C++ 项目的 xxxx.vcxproj
。
<Target Name="BuildFunction" AfterTargets="Build">
<MSBuild Condition="'$(Platform)'=='Win32'" Projects="$(MSBuildProjectFile)" Properties="Platform=x64;PlatFormTarget=x64" RunEachTargetSeparately="true" />
<MSBuild Condition="'$(Platform)'=='x64'" Projects="$(MSBuildProjectFile)" Properties="Platform=Win32;PlatFormTarget=x86" RunEachTargetSeparately="true" />
</Target>
<Target Name="CleanAll" AfterTargets="Clean">
<MSBuild Condition="'$(Platform)'=='Win32'" Projects="$(MSBuildProjectFile)" Targets="Clean" Properties="Platform=x64;PlatFormTarget=x64" RunEachTargetSeparately="true" />
<MSBuild Condition="'$(Platform)'=='x64'" Projects="$(MSBuildProjectFile)" Targets="Clean" Properties="Platform=Win32;PlatFormTarget=x86" RunEachTargetSeparately="true" />
</Target>
这些目标取决于 Build
或 Clean
目标。所以当你构建项目时,它们总是会在后面执行,并将项目构建到其他版本中。
此外,此方法与您的解决方案相关联,因此当其他人克隆您的解决方案时,直接从您的脚本构建或在 VS IDE 中单击 构建 然后您会在解决方案中看到文件的 x64
和 x86
版本。
希望对您有所帮助。