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
您的環境似乎已破裂。你是否從Visual Studio命令提示符運行cmake?涉及的軟件版本是什麼? – rubenvb
@rubenvb忘了提及,我正在使用cmake-gui 3.5.2; MinGW-w64 x86_64-4.9.2-posix-seh-rt_v3-rev1;和libpng v16(1617);我目前正試圖以某種方式將我的所有環境變量重置爲默認值。 – Matusn