【问题标题】:codeblock compiler c++ error using mingw64使用mingw64的代码块编译器c ++错误
【发布时间】:2021-04-23 19:08:30
【问题描述】:

我有一个使用 CB 的项目。编译器是MingW64 当我使用 GNU GCC x64 对其进行 ccompile 时。没有错误。 当我切换到 GNU GCC(32 位)时,我得到了这些错误

C:..\SDK\ScopeCppSDK\vc15\SDK\include\shared\basetsd.h 错误:从 'const void*' 转换为 'long unsigned int' 失去精度 [-fpermissive]

x86_64-w64-mingw32\include\debugapi.h 错误:'WINBOOL' 没有命名类型;

x86_64-w64-mingw32\include\fileapi.h 错误:'WINBOOL' 没有命名类型;

然后我将 vc15\SDK 的文件夹移动到 vc15\SDK_old,这样 MingW 就找不到了。 然后用 GNU GCC(32) 编译项目。没有错误。

所以问题似乎来自 basetsd.h

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

它是如何涉及的?为什么带有 MnGW 的 CB 使用 MS SDK?

【问题讨论】:

    标签: c++ codeblocks gnu


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2017-11-15
      • 2014-06-14
      • 1970-01-01
      • 1970-01-01
      • 2013-06-25
      • 2013-11-23
      • 2013-05-28
      • 2022-06-24
      相关资源
      最近更新 更多