2010-09-28 81 views
3

我已经继承了一些C99代码,我正在计划重用C++为中心的解决方案。不幸的是,即使是微软最新的编译器也几乎不支持非平凡的C99特性。Visual Studio Makefile项目同步

有问题的代码已经过测试而死亡,我宁愿不经历在C++中重写它的麻烦。这意味着为了让我逐字重复使用代码,我必须依赖一个合格的第三方编译器。

环顾四周,看起来我整合这段代码的最好方法是在我的解决方案中添加一个“Makefile项目”。只有一个问题。现在我的责任是保持“Build Command Line”属性与通过Visual Studio添加到项目中的文件保持同步。

乍一看,我找不到一种方法通过常用的Visual Studio $()样式的宏来获取项目中的文件列表。我总是可以编写一个shell脚本来枚举* .c文件,并将它们的路径传递给第三方编译器。然而,我相信Visual Studio会为我做至少那部分工作,因为它已经在相关的* .vc [x] proj文件中包含了这些信息。

我不太可能需要为这个项目添加任何新的源文件,但仍然这种手动同步(即没有脚本)对我来说似乎相当脆弱。

除了编写助手脚本之外,我还有哪些选择?

+0

“Makefile项目”意味着它说什么,需要有另一个负责依赖关系的“代理”。像make文件一样。规则文件可以帮助您选择另一种构建工具,但现在在VS2010中已经有些破碎了。利用构建此C99代码的原始工具,从makefile项目运行它。 – 2010-09-28 22:37:12

+0

@Hans:请把答案放在答案中。 :) – kj53r 2010-09-28 22:39:56

+0

那么,我很厌倦与回答标记没有有用的票。您可以自己复制粘贴并关闭该线程。 – 2010-09-28 22:46:35

回答

2

Hans Passant

“生成文件项目”说话算数, 需要有另一种“代理人” 这是负责的 依赖性。像make文件一样。规则 文件可以帮助您选择另一个 构建工具,但现在在VS2010中有点破坏 。利用构建此C99 代码的 原始工具,从makefile 项目运行它。

+0

似乎我只能接受这在〜2天...任何超级用户欢迎标记为答复。 – kj53r 2010-09-28 22:55:03