【问题标题】:MinGW uses Visual Studio headers instead of its own onesMinGW 使用 Visual Studio 头文件而不是它自己的头文件
【发布时间】:2017-02-15 17:11:49
【问题描述】:

我正在尝试使用 MinGW-w64 (x86_64) 编译 libpng。我已经使用MinGW Makefiles 生成器在 CMake 中设置了 libpng。运行 make 时,我得到以下输出:

Scanning dependencies of target png16
[  2%] Building C object CMakeFiles/png16.dir/png.obj
In file included from C:/PROGRA~2/MICROS~3.0/VC/include/vcruntime.h:46:0,
                 from C:/PROGRA~2/MICROS~3.0/VC/include/crtdefs.h:9,
                 from C:/PROGRA~1/MINGW-~1/X86_64~1.2-P/mingw64/x86_64-w64-mingw32/include/stdlib.h:9,
                 from C:\CPP\deps\lpng1617\pngpriv.h:42,
                 from C:\CPP\deps\lpng1617\png.c:14:
C:/PROGRA~2/MICROS~3.0/VC/include/vadefs.h:28:35: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'uintptr_t'
         typedef unsigned __int64  uintptr_t;
                                   ^
In file included from C:/PROGRA~2/MICROS~3.0/VC/include/crtdefs.h:9:0,
                 from C:/PROGRA~1/MINGW-~1/X86_64~1.2-P/mingw64/x86_64-w64-mingw32/include/stdlib.h:9,
                 from C:\CPP\deps\lpng1617\pngpriv.h:42,
                 from C:\CPP\deps\lpng1617\png.c:14:
C:/PROGRA~2/MICROS~3.0/VC/include/vcruntime.h:81:1: error: unknown type name 'pack'
 _CRT_BEGIN_C_HEADER
 ^
... and more ...

为什么 MinGW 试图包含来自 Visual Studio 的头文件?第 9 行的 stdlib.h 包括 crtdefs.h,它包含在 Visual Studio 中,而不是 MinGW 目录中。为什么?

crtdefs.h 确实存在于 MinGW 目录中(在 stdlib.h 旁边)

我的 %PATH% 变量不包含任何 Visual Studio(或 Windows SDK)文件夹。

经过更多调查,我发现build\CMakeFiles\png16_static.dir\includes_C.rsp包含-IC:/PROGRA~2/MICROS~3.0/VC/include

【问题讨论】:

  • 您的环境似乎已损坏。您是否从 Visual Studio 命令提示符运行 cmake?涉及的软件版本有哪些?
  • @rubenvb 忘了说,我使用的是 cmake-gui 3.5.2; MinGW-w64 x86_64-4.9.2-posix-seh-rt_v3-rev1;和 libpng v16 (1617);我目前正在尝试以某种方式将我的所有环境变量重置为默认值。

标签: cmake mingw mingw32 mingw-w64


【解决方案1】:

经过几次系统重启,重新安装 MinGW 和 CMake,并将环境变量设置为默认值后,它现在似乎可以工作了。不确定到底出了什么问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    相关资源
    最近更新 更多