我有一个使用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位