我的团队拥有一个C语言代码库,可用于多个不同平台的嵌入式系统。我们有一群人试图将此代码库的一部分移植到Windows驱动程序中。但是,Microsoft编译器的某些方面与我们现有的代码库(C99功能等)不相符合。我们尝试在产品之间保留通用代码库,避免为某些平台创建分支,但Windows特定的变通办法和#ifdefs
的数量变得越来越混乱。
有没有办法使用Microsoft以外的编译器构建Windows驱动程序?我们的代码库在gcc
和GreenHills下编译得很好,我们也应该可以在它上面使用英特尔C编译器(自从我们尝试以来已经有一段时间了,但它仍然可以工作)。能够使用不同的编译器将有助于保持我们的代码更清洁,而且它将节省我们的时间和精力。我们能够找到的所有文档都指向使用Visual Studio或Windows DDK。
如果确实需要Microsoft编译器或DDK,是否可以使用其他编译器将我们的大部分代码构建为静态库,然后使用Windows DDK在该库周围创建包装器?
答案 0 :(得分:1)
即使你成功编译我也不会推荐这样的东西。你永远不会知道副作用。唯一使用的编译器是WDK中的编译器(它包含在VS2012中)。即使是MS非WDK编译器(VS2012之前的任何VS版本)也不适用于此。
同样的答案是用其他编译器构建库并将其与MS一起链接。这不是“如何欺骗操作系统”而是“如何做正确的事情”的问题。我想你可以使用其他编译器编译有限的代码部分(例如,C99中的编译代码,MS不支持),但这样做有风险。