我正在用Code :: 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)) ===|


相同的代码可以使用64位TDM-GCC很好地编译,但是它使用的是真正旧版本的GCC 5.1.0。

我尝试了具有不同线程模型和异常的MinGW-W64的较旧版本,但是没有运气。

可能我缺少了一些东西。

提前致谢。

最佳答案

我将此添加到我的C文件中:

#define __INTRINSIC_DEFINED__InterlockedAdd64

好像intrin-impl.h和wdm.h之间发生冲突。我希望mingw社区的人可以解决这个问题:)

关于c - 重新定义_InterlockedAdd64,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44729951/

10-11 22:07