2017-02-15 39 views
0

我想用MinGW-w64(x86_64)编译libpng。我使用MinGW Makefiles生成器设置了使用CMake的libpng。在运行make时,我得到以下输出:MinGW使用Visual Studio标题而不是它自己的

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并在(旁边stdlib.h

%PATH%变量不包含任何Visual Studio(也不支持Windows SDK)文件夹MinGW的目录中。

更多的研究后,我发现build\CMakeFiles\png16_static.dir\includes_C.rsp包含-IC:/PROGRA~2/MICROS~3.0/VC/include

+2

您的环境似乎已破裂。你是否从Visual Studio命令提示符运行cmake?涉及的软件版本是什么? – rubenvb

+0

@rubenvb忘了提及,我正在使用cmake-gui 3.5.2; MinGW-w64 x86_64-4.9.2-posix-seh-rt_v3-rev1;和libpng v16(1617);我目前正试图以某种方式将我的所有环境变量重置为默认值。 – Matusn

回答

0

经过多次系统重新启动,重新安装MinGW和CMake的,以及环境变量设置为默认值,这似乎是现在的工作。不确定究竟发生了什么错误。

相关问题