2011-06-14 59 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的編譯代碼),但它有風險。

相關問題