22

我有一些 makefile 可以为我构建某些库。为了方便起见,我现在需要将它们转换为 VS 项目。我只是在 VS 提供的 makefile 向导的帮助下找到将 VS 项目转换为 makefile 的方法。此外,我确实发现 VS6 中包含此功能,可将 makefile 转换为 VS 项目。但是这个功能在以后的版本中已经被删除了。另外,我意识到 msdn 站点上不再提供 VS6 下载。

有没有其他方法可以将 makefile 转换为 Visual Studio 项目?或者我可以从某个地方获得 VS6 吗?

4

2 回答 2

11

您在这里唯一真正的选择是手动进行转换(或使用 Makefile 项目向导)。你说你有“几个”makefile,不知道有多少,但除非你谈论> 10个左右,否则为这些手动创建一个Visual Studio项目并不是很多工作。毕竟,您所做的只是创建一个新的 dll 项目并向其中添加源文件。默认的编译器/链接器标志几乎不需要任何调整。哦,是的,如果您确实对其进行了调整,请确保在属性表中而不是在项目本身中进行这些更改:属性表可以被其他项目重用,这是 DRY 原则的简单问题。

为什么这是唯一真正的选择?首先,没有任何工具可以可靠地将任意 makefile 转换为 VS 项目,这很简单,因为 makefile 可以是您想要的任何格式,并且它们的许多功能在 VS 项目中根本没有对应物。其次,VS6 在这个日期大约有 15 年的历史,所以即使你让它在你的机器上运行,它产生的输出仍然是古老的,绝对不是你想要用于项目的输出。

于 2013-06-10T07:42:27.510 回答
3

这篇 CodeProject 文章: Automatically Translate makefile C/C++ Project for Visual Studio 提供了针对 VS 2013 C/C++ 项目的基本解决方案。

[ PS:不是我的文章,但它至少解决了您的 VS6 问题的主要部分。]

这是一个简单的脚本,因此充满了假设和失败的机会。但是,如果您的项目符合其意图范围,它可能会为您提供一个可行的起点。

您仍然需要:

  • 包含明显不是 C/C++ 文件的文件
  • 调整任何项目选项
  • 调整任何编译器选项
  • 添加链接时间依赖项
  • 等等

万一那篇文章消失了……它是一个 VBS 脚本:

  • 扫描目录以查找具有属于已知 VS 组的扩展名的文件
  • 重复到子目录中寻找更多文件。
  • 创建 .vcxproj 和 .vcxproj.filters 文件
  • 将找到的文件添加到 .vcxproj 和 .vcxproj.filters 文件中

因此,如果您有嵌套项目(可能),您将需要调整脚本在其递归步骤中的工作方式。

祝你好运。

于 2015-07-05T19:45:49.173 回答