C 重新定义ADD64

C 重新定义ADD64,c,mingw-w64,wdk,wdm,C,Mingw W64,Wdk,Wdm,我正在用代码::Blocks中的MinGW-W64 7.1.0(seh,posix)制作一个简单的内核模式驱动程序。我使用“include/DDK”中的内置DDK头进行编译。但构建失败,并出现该错误: ||=== Build: Release in test_driver (compiler: GNU GCC Compiler) ===| C:\mingw64\x86_64-w64-mingw32\include\ddk\wdm.h|361|error: redefinition of '_In

我正在用代码::Blocks中的MinGW-W64 7.1.0(seh,posix)制作一个简单的内核模式驱动程序。我使用“include/DDK”中的内置DDK头进行编译。但构建失败,并出现该错误:

||=== Build: Release in test_driver (compiler: GNU GCC Compiler) ===|
C:\mingw64\x86_64-w64-mingw32\include\ddk\wdm.h|361|error: redefinition of '_InterlockedAdd64'|
C:\mingw64\x86_64-w64-mingw32\include\ddk\wdm.h|376|note: in expansion of macro 'InterlockedAdd64'|
C:\mingw64\x86_64-w64-mingw32\include\psdk_inc\intrin-impl.h|1035|note: previous definition of '_InterlockedAdd64' was here|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
同样的代码可以用TDM-GCC 64位编译,但它使用了一个非常旧的GCC版本,5.1.0

我尝试了MinGW-W64的旧版本,使用了不同的线程模型和异常,但没有成功

也许我遗漏了什么


提前感谢。

我在我的C文件中添加了以下内容:

#定义uuu固有u定义uuu联锁DD64


看起来是intrin impl.h和wdm.h之间的冲突。我希望来自mingw社区的人能解决这个问题:)

我喜欢mingw,我每天都使用它,但对于内核模式的东西,我只会使用官方DDK提供的任何VC++版本,特别是因为我能找到的关于使用mingw编译驱动程序的所有信息都是非官方的——比如,我不想使用Visual Studio或其他繁重的IDE,这就是为什么我使用MinGW进行Windows驱动程序开发。在命令行中仅使用WDK编译驱动程序将非常好。对于“正常”的程序开发,我也喜欢MinGW@Matteoitaliaw谁谈过IDE?我上次检查的官方DDK只提供了VC++编译器,你可以使用任何你喜欢的编辑器。说我应该安装VisualStudio,WDK安装说它不包括任何编译器或链接器。没有VisualStudio我怎么能使用WDK和VC++呢?嗯,这是最近发生的变化,以前DDK包含了编译器和构建驱动程序所需的一切,而没有其他东西。尽管如此,您仍然可以使用VC++编译器,而无需实际编码到IDE中,并按照指定从命令行构建内容。