2017-02-15 45 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的,以及環境變量設置爲默認值,這似乎是現在的工作。不確定究竟發生了什麼錯誤。

相關問題