代码块编译器c++使用mingw64时出错



我有一个使用CB的项目。编译器是MingW64当我使用GNU GCC x64来编译它时。没有错误。当我切换到GNUGCC(32位(时,我得到了错误

C: 。。\SDK\ScopeCppSDK\vc15\SDK\include\shared\basetsd.h错误:从"const void*"转换为"long unsigned int"会丢失精度[-fpermission]

x86_64-w64-mingw32\include\debugapi.h错误:"WINBOOL"未命名类型;

x86_64-w64-mingw32\include\fileapi.h错误:"WINBOOL"未命名类型;

然后我把vc15\SDK的文件夹移到vc15\SDK_old,所以MingW找不到它。然后使用GNUGCC(32(编译该项目。没有错误。

所以问题似乎来自basetsd.h

但是这个MS SDK不在的搜索路径中

它是如何参与的?为什么CB with MnGW使用MS SDK?

这取决于实现。但通常,64位体系结构上的32位编译器有64位指针,long int是32位。因此,您正试图将64位值转换为32位

最新更新