【问题标题】:Can I compile a Visual C++ project on Linux using xbuild?我可以使用 xbuild 在 Linux 上编译 Visual C++ 项目吗?
【发布时间】:2013-04-02 15:40:17
【问题描述】:

我有一个现有项目,我使用 Visual C++ 2008 在 Windows 和 Debian Linux 上编译。该项目使用标准的 Visual C++ .vcproj 文件,以及一些 .cpp.h 文件。它不依赖于任何 Windows 特定的东西。只是普通的 C++。

它在 Linux 上编译和运行良好,使用 自制工具 读取 .vcproj 文件以生成 Makefilemake 一起使用以编译和链接所有文件g++.

问题在于,在 Visual C++ 2010(和 2012)中,项目文件的格式发生了变化。甚至名称也从.vcproj 更改为.vcxproj。我的自制工具无法读取这个新项目文件来生成Makefile

我没有升级 自制工具 来支持新的项目文件,我想知道xbuild 是否能够编译我的 Linux 可执行文件?

我首先尝试编译我自己的(VC++2008)项目,但是xbuild 抱怨我的项目is a VS2003 project, which is not supported by xbuild. 但是在谷歌上搜索这个问题时,我发现xbuild 应该支持VS2005 项目文件。也有一些参考mdtool来支持这些老项目文件,不过我现在好像已经融入xbuild了。

此外,我尝试编译从 MSDN 站点获得的 Visual C++ 2010 示例 (HuoChess)。结果是

/Microsoft.Cpp.Default.props: Project file could not be imported, it was being
imported by [...] /HuoChessConsole/HuoChessConsole.vcxproj: Imported project:
"//Microsoft.Cpp.Default.props" does not exist.`

现在,看起来项目文件需要一些 MicrosoftCpp 编译器定义的规则。我应该伪造这些定义以使用gcc 吗?我该怎么做?

我想用xbuild 做的事有可能吗?

【问题讨论】:

  • 最好的选择是使用 vs2010 项目中使用的文件创建全新的单声道项目并相应地编辑配置。试图将 msbuild 和其他 msstuff 与任何合理的东西相匹配是在浪费时间。
  • 应用坚持相对路径的唯一规则(避免驱动器号),一个工具可以轻松地将所有 ` \ ` 更改为 ` / ` 。它甚至可以获取环境变量并更改$(ProjectDir) 等。宏。这至少是我 8 年多以来一直非常成功的做法。

标签: c++ linux gcc mono xbuild


【解决方案1】:

有一个项目GCCBuild,您可以使用它在 Linux 中构建 vcxproj 项目。它只是使用相同的 vcxproj,但使用 GCC 来编译和构建。那里也有很多例子。

附言。我是那个项目的作者。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 2016-09-24
    • 2010-12-06
    相关资源
    最近更新 更多