【问题标题】:can mingw build a visual studio-2010 project?mingw可以建立一个visual studio-2010项目吗?
【发布时间】:2011-12-25 20:21:51
【问题描述】:

我有一个包含大量源文件和头文件的 Visual Studio-2010 项目。现在我需要在最新的 Debian GNU/Linux 下自动构建这个项目。所以我选择使用MinGW。但我需要这个 Visual Studio 项目的生成文件。有没有一种简单的方法可以将 vs 项目转换为生成文件?或者 MinGW 可以直接构建一个带有附加包或库的 Visual Studio 项目?任何想法将不胜感激。

【问题讨论】:

  • 这个项目真的移植到Linux了吗?或者你只是在祈祷并希望它能够编译?因为即使构建系统“正常工作”(tm),也不能保证代码能够正确编译和/或链接。
  • 不,这个项目还没有移植到 Linux 上?我不会这样做。我想在windows下开发,在linux上自动构建。
  • 嘿,对不起,那是白日梦。除非您使用完全跨平台的库(boost、qt 等)、进行零系统调用(它可能正在发生而您甚至没有意识到)和跨平台构建系统(如 cmake),否则这很简单永远不会发生。让 C/C++ 项目跨平台通常是一件苦差事。另外我不确定在这种情况下“自动构建”是什么意思。编译农场?自动制作?
  • 嗯,“Autobuild”表示可以使用脚本(例如makefile)完成构建。
  • 这不是自动构建。那是做。而且它有很多种口味。你真的应该看看 cmake,它可以生成 linux makefile 和 Visual Studio 项目。但是,正如我希望我强调的那样,这并不能保证代码实际上可以在其他架构上编译。

标签: visual-studio-2010 makefile mingw mingw32


【解决方案1】:

如果您想将程序的构建永久移植到 GNU/Linux,我建议切换到自动工具(autoconf 和 automake)。自动工具非常普遍,并且具有出色的交叉编译支持。 (另一方面,也有点怪异的声誉。)虽然我知道 VS 项目没有自动翻译,但单个程序的编译可以像查找所有源文件和头文件一样简单设置,在 Makefile.am 中适当地列出它们并为 Windows 对象编写规则。

如果向 MinGW 的过渡不是一成不变的,或者可能会出现持续的两个编译器构建方案,请按照评论者的建议使用 cmake。虽然我一直发现 CMake 对非维护构建(在开源软件中很常见)来说是一大难题,但它在生成各种构建描述文件(如 Makefile 和 VS 项目)方面享有盛誉。

无论哪种方式,您都必须手动转换您的项目。对于正常的项目结构来说,这很容易,但必须这样做。

【讨论】:

    【解决方案2】:

    我不知道任何能够开箱即用的工具链。 CMake(和所有其他元 makefile 生成器)仅提供单向转换:它们可以生成一次 Visual Studio 项目/解决方案,但无法自动与 VS/MSBuild 配置中所做的更改同步。编写和维护 CMake(或 PreMake 或其他)配置很痛苦,而且只有在您的主要开发平台位于 Microsoft 平台之外的任何地方时才有意义。

    虽然有一个有趣的替代方案:xbuild - MSBuild 的一个端口,它是 VS 智能背后的构建系统。从理论上讲,可以扩展系统以支持 Visual Studio 生成的 MSBuild 配置,并为其他平台上的适当 C++ 工具链定义转换规则(甚至以双向方式)。与 autotools/make 相比,MSBuild/XBuild 的声明性、基于 XML 的性质是一个巨大的胜利,这在我的开发人员的生活中花费了我太多的时间和不便。 MSBuild/XBuild 都是作为一个纯托管框架实现的,具有精心设计的架构,因此扩展非常容易实现。当然,只有当您(或您的公司)认真考虑大规模跨平台支持时,这才有回报。

    【讨论】:

      猜你喜欢
      • 2013-03-19
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多