3

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

它在 Linux 上编译和运行良好,使用自制工具读取.vcproj文件以生成Makefile用于make编译和链接所有文件的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.`

现在,看起来项目文件需要一些Microsoft为编译器定义的规则。Cpp我应该伪造这些定义来gcc代替使用吗?我怎样才能做到这一点?

我想做的事有可能xbuild吗?

4

1 回答 1

2

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

PS。我是那个项目的作者。

于 2018-05-07T07:34:04.673 回答