2011-06-14 60 views
3

我的团队拥有一个C语言代码库,可用于多个不同平台的嵌入式系统。我们有一群人试图将此代码库的一部分移植到Windows驱动程序中。但是,Microsoft编译器的某些方面不会与我们现有的代码库(C99功能等)进行切换。我们试图保持产品之间的通用代码库,并避免为某些平台创建分支,但Windows特定的解决方法和#ifdefs的数量正在变得混乱。在不使用Microsoft编译器的情况下开发Windows驱动程序

有没有一种方法可以使用Microsoft以外的编译器构建Windows驱动程序?我们的代码库在gcc和GreenHills下编译得很好,我们也应该能够使用它的Intel C编译器(我们已经尝试了一段时间,但它应该仍然有效)。能够使用不同的编译器有助于保持我们的代码更清洁,并且可以节省我们的时间和精力。我们所能找到的所有文档都是指使用Visual Studio或Windows DDK。

如果确实需要Microsoft编译器或DDK,是否可以使用其他编译器将大量代码构建为静态库,然后使用Windows DDK为该库创建包装?

+0

您现在使用的是哪种版本的编译器? – selbie 2011-06-15 06:12:42

+0

我们正在使用与当前Windows DDK一起打包的任何内容。构建实际上是在自动构建服务器上完成的,所以我没有在我面前获得它的副本以获取确切的版本号。 – bta 2011-06-15 22:13:24

+0

从构建窗口:只需键入cl.exe,不带任何命令行参数。版本16.x是与Visual Studio 2010相对应的最新版本。如果DDK/WDK是旧版本,则可能安装Visual C++ express,然后修复DDK构建环境以使用该编译器。 – selbie 2011-06-16 07:38:13

回答

1

即使您编译成功,我也不会推荐这样的东西。你永远无法知道副作用。唯一使用的编译器是WDK中的编译器(它已合并到VS2012中)。即使是MS非WDK编译器(VS2012之前的任何VS版本)也不适合这里。

对于使用其他编译器构建库并将其与MS链接起来,也是一样的。这不是“如何欺骗操作系统”的问题,而是“如何做正确的事情”。我想你可以使用其他编译器编译代码的一小部分(例如C99中不支持MS的编译代码),但它有风险。

相关问题