我们有一个 Visual Studio 2010 项目,其中包含一堆 C 源文件。
需要编译这些文件,然后使用嵌入式设备的特殊工具链进行链接。
目前,我们正在使用默认的 C++ 构建在 Visual Studio 中对其进行编译,然后在构建后事件中我们调用嵌入式设备的工具链。
我想知道是否有某种方法可以让 Visual Studio 使用我们的工具链而不是 Microsoft 的工具链进行编译和链接。
我尝试覆盖构建目标,并取得了一些进展,但是当开发人员更改项目属性时,项目的 vcxproj 文件会被覆盖。
覆盖构建目标的正确方法是什么?
在 Visual Studio 2010 中使用自定义工具链的正确方法是设置自定义平台工具集:
<PlatformToolset>Intel C++ Compiler XE 12.1</PlatformToolset>
这里,我使用的是 Intel C++ 编译器。构建项目时,MSBuild 在目录中查找平台工具集:
c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\$(Architecture)\PlatformToolsets\
其中
$(Architecture)
是 x64
、Win32
等
但是,要使用自定义工具链,您必须编写 MSBuild 配置文件。就我而言,英特尔 C++ 编译器附带了此类文件。因此,我需要做的就是设置正确的平台工具集(这可以在项目属性窗口中的 Visual Studio 2010 中完成)。
这里是 Visual C++ 团队博客文章的链接,您可以在其中找到更多详细信息: C++ 本机多目标