2017-02-15 3 views
0

Я пытаюсь скомпилировать libpng с помощью MinGW-w64 (x86_64). Я установил libpng с помощью CMake, используя генератор MinGW Makefiles. При запуске 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? stdlib.h в строке 9 включает в себя 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

+2

Ваше окружение кажется сломанным. Вы запускаете cmake из командной строки Visual Studio? Каковы версии программного обеспечения? – 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, и установки переменных среды по умолчанию, это, кажется, работает. Не уверен, что именно пошло не так.

Смежные вопросы