J'essaie de compiler libpng avec MinGW-w64 (x86_64). J'ai mis en place la libpng avec CMake en utilisant le générateur MinGW Makefiles
. Lors de l'exécution de make, j'obtiens la sortie suivante:MinGW utilise les en-têtes Visual Studio au lieu de ses propres
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 ...
Pourquoi MinGW essaie-t-il d'inclure des fichiers d'en-tête dans Visual Studio? Le stdlib.h
à la ligne 9 inclut crtdefs.h
qui est inclus à partir de Visual Studio et non du répertoire MinGW. Pourquoi?
Le crtdefs.h
existe dans le répertoire MinGW (à côté du stdlib.h
)
Ma %PATH%
variable ne contient pas de dossiers Visual Studio (ni de Windows SDK).
Après une enquête plus approfondie, je trouve que build\CMakeFiles\png16_static.dir\includes_C.rsp
contient -IC:/PROGRA~2/MICROS~3.0/VC/include
Votre environnement semble brisé. Exécutez cmake à partir d'une invite de commande Visual Studio? Quelles sont les versions du logiciel impliquées? – rubenvb
@rubenvb J'ai oublié de mentionner que j'utilise cmake-gui 3.5.2; MinGW-w64 x86_64-4.9.2-posix-seh-rt_v3-rev1; et libpng v16 (1617); J'essaie actuellement de réinitialiser en quelque sorte toutes mes variables d'environnement aux valeurs par défaut. – Matusn