Разработка драйвера для Windows без использования компилятора Microsoft - PullRequest
3 голосов
/ 15 июня 2011

У моей команды есть кодовая база языка C, которая используется в нескольких встроенных системах различных платформ.У нас есть группа людей, которые пытаются портировать часть этой кодовой базы в драйвер Windows.Тем не менее, некоторые аспекты компилятора Microsoft не совместимы с нашей существующей кодовой базой (помимо прочего, функциями C99).Мы стараемся поддерживать общую кодовую базу между продуктами и избегать создания вилок для определенных платформ, но количество специфических для Windows обходных путей и #ifdefs становится беспорядочным.

Есть ли способ создать драйвер Windows, используяКомпилятор, кроме Microsoft?Наша кодовая база прекрасно компилируется под gcc и GreenHills, и мы должны иметь возможность использовать на ней и компилятор Intel C (прошло уже много времени с тех пор, как мы пытались, но все равно должно работать).Возможность использовать другой компилятор поможет сохранить чистоту нашего кода, а также сэкономит нам время и усилия.Вся документация, которую мы смогли найти, относится к использованию Visual Studio или Windows DDK.

Если действительно необходим компилятор Microsoft или DDK, можно ли построить большую часть нашего кода какстатическая библиотека с использованием другого компилятора, а затем использовать Windows DDK для создания оболочки вокруг этой библиотеки?

1 Ответ

1 голос
/ 23 октября 2012

Я бы не рекомендовал такую ​​вещь, даже если вам удастся скомпилировать.Вы никогда не можете знать побочные эффекты.Единственный компилятор, который нужно использовать, это WDK (он включен в VS2012).Даже компилятор MS без WDK (любая версия VS до VS2012) здесь не подходит.

Тот же ответ идет для сборки библиотеки с другим компилятором и связывания ее с MS.Вопрос не в том, «как обмануть ОС», а в том, «как поступить правильно».Я предполагаю, что вы можете иметь ограниченную часть кода, скомпилированного с другим компилятором (например, код компиляции в C99, который не поддерживается MS), но это рискованно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...