2017-02-15 1 views
0

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

+2

Votre environnement semble brisé. Exécutez cmake à partir d'une invite de commande Visual Studio? Quelles sont les versions du logiciel impliquées? – rubenvb

+0

@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

Répondre

0

Après plusieurs redémarrage du système, la réinstallation MinGW et CMake, et la définition des variables d'environnement par défaut, il semble fonctionner maintenant. Je ne sais pas exactement ce qui s'est mal passé.