使用Visual Studio进行跨平台开发的最佳方法是什么?

时间:2008-11-26 11:24:19

标签: visual-studio-2008 visual-studio-2005 msbuild build-process

我们正在开发多种游戏(DS / Wii / Xbox 360 / PS3 / PC / PSP)。每个都有自己的编译器/链接器和调试器。我们希望使用Visual Studio作为IDE并管理构建过程,但使用特定于平台的编译器(和设置)来生成适当的输出。我们可以在VS之外管理构建过程(使用jam或ant),但这不是优先解决方案。

在网上搜索,这似乎是一个常见的问题,但没有人有一个很好的解决方案。有人解决了这个问题吗?处理这个问题的最佳方式是什么。

我想到了许多解决方案 - 在预构建步骤中从solition自动生成nant脚本(可能是最少的工作但仍然不理想),用存根应用替换cl.exe和link.exe,使用msbuild (但这是针对.net开发而不是本机代码),编写一个自定义的VS插件(很多工作 - 任何指向现有的商业或开放式设备的指针都会很好)。有人试过这些吗?对你有好处吗? ;)

干杯

4 个答案:

答案 0 :(得分:2)

CMake没有做我想要做的事。要清楚 - 当我说“管理构建过程”时,我的意思是,任何人都可以从存储库中获取项目,然后从VS中选择平台,编译/运行,添加文件,更改设置等,这一切都可以通过魔法工作; )所以回答我自己的问题,经过一番挖掘,这就是我想出来的。

执行此操作的'正确'方法是为VS编写一个插件,添加一个新平台,该平台将出现在配置管理器中(就像他们为Xbox,Pocket PC等所做的那样)。不幸的是,似乎微软凭借其无限的智慧决定不将这一特定功能的API暴露给未经洗涤的伟大。

但是,您可以编写一个加载项并且并行地将cl.exe和link.exe替换为存根程序,这些存根程序将实际的编译发送到适当的编译器。它似乎有一个开源项目VSItanium(仅2003年,并且必须为自定义编译器进行修改)。此外,SNSystems还使用他们的VSI PSP包。

编写插件需要一些时间,因此在此期间,快速的间隙解决方案是编写一个解析解决方案和项目文件的脚本,并提取重要位并生成要包含在nant中的文件(或制作,或堵塞或其他) - 从每个构建步骤调用。无论是那个还是整个makefile解决方案路线:/

MSBuild确实应该是前进的方向。我有一个快速的玩它,你可以(几乎)做我想做的一切但不知何故它jsut没有相当凝胶。保持认为它是一个C#项目 - 可能需要花更多的时间来理解它,除非任何MSBuild专家想要指出我正确的方向。

答案 1 :(得分:1)

你看过CMake了吗?它可以从文本描述中生成Visual Studio项目文件。

答案 2 :(得分:1)

Homebrew PSP SDK(MinPSPW)上使用的另一个选项是使用Makefile项目。您使用VS的代码编辑器,但最后在调用编译器时,它将使用基于您的makefile的正确编译器。大多数输出​​错误都会被VS抓取并在您的来源上突出显示。

答案 3 :(得分:0)

支持CMake的建议,但需要注意的是,您无法在VS中为其他平台管理项目。除了当前项目/目标/平台之外,其他任何内容都不是为了管理库路径,定义等而编写的。你几乎肯定需要说“平台X的库存在这里”,我只是没有看到通过VS做到这一点的方法。

相关问题