IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

MSVC 2013 : fichier windows.h introuvable à la compilation

  1. #1
    Membre averti
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Points : 311
    Points
    311
    Par défaut MSVC 2013 : fichier windows.h introuvable à la compilation
    Bonjour,

    Je souhaite utiliser MSVC 2013 Pro pour produire une version de mon code QT qui compile parfaitement avec MINGW.
    J'ai installé Qt 5.5.0 pour MSVC 64bits.
    Lorsque j'ouvre mon programme et que j'essaie de compiler j'ai une erreur

    C1083 : Impossible d'ouvrir le fichier include "windows.h" contenu dans qt_windows.h

    Quelqu'un a t-il une idée ?
    Probablement une variable d'environnement à rajouter ...

  2. #2
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut


    Je suis pas le spécialiste de la compilation et encore moins de Windows, mais il me semblait que msvc et mingw était deux choses différentes. Pourquoi avoir besoin de l'un pour compiler avec l'autre ???
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    S'il ne trouve pas Windows.h, c'est que tu as dû oublier d'inclure le SDK Windows lors de l'installation (au moins vu qu'il s'agit d'une édition pro, tu ne peux pas t'être trompé de version).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre averti
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Points : 311
    Points
    311
    Par défaut
    Citation Envoyé par Jiyuu Voir le message
    Je suis pas le spécialiste de la compilation et encore moins de Windows, mais il me semblait que msvc et mingw était deux choses différentes. Pourquoi avoir besoin de l'un pour compiler avec l'autre ???
    Mon but est de produire une version 64 bits de mon code.
    En efet entre une version linux 64 bits de mon code et une version mingw 32bits sous windows j'ai quasiment un facteur 5 d'écart.

    Citation Envoyé par Médinoc Voir le message
    S'il ne trouve pas Windows.h, c'est que tu as dû oublier d'inclure le SDK Windows lors de l'installation (au moins vu qu'il s'agit d'une édition pro, tu ne peux pas t'être trompé de version).
    Surement oui, mais quelle étape ais-je raté ?
    C'est lors de l'installation de Qt qu'il me faut inclure ce SDK ?
    Je n'ai pas souvenir d'avoir décoché des options lors de l'installation de Qt.

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Normalement, c'est quelque part dans l'installation de Visual 2013 (moi, je l'ai eu quand j'ai installé Express 2013 for Windows Desktop, mais je n'ai pas de version Pro).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre averti
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Points : 311
    Points
    311
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Normalement, c'est quelque part dans l'installation de Visual 2013 (moi, je l'ai eu quand j'ai installé Express 2013 for Windows Desktop, mais je n'ai pas de version Pro).
    Il me faut donc modifier le .pro de mon fichier pour rajouter un include path sur le chemin où se trouve windows.h ?

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Normalement, quand tu fais un "projet Win32" sur un Visual Studio installé avec le Windows SDK, les include paths sont déjà réglés comme il faut...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre averti
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Points : 311
    Points
    311
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Normalement, quand tu fais un "projet Win32" sur un Visual Studio installé avec le Windows SDK, les include paths sont déjà réglés comme il faut...
    Je ne suis pas sur que l'on parle de la même chose.
    Pour l'instant j'essaie sous QtCreator de compiler mon projet avec le compilateur de Visual Studio 2013.
    J'ai donc installé la version de Qt spécifique à cette plateforme.
    J'ai donc bien dans la gestion de mon projet (sous QtCreator) le kit qui pointe vers les compilateurs de visual studio et la compilation débute bien, jusqu'au problème d'include de "windows.h". Mais je suis sous QtCreator pour tout celà.

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ah, ben si c'est QtCreator, en effet il faudra probablement que tu rajoutes les includes toi-même.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Membre averti
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Points : 311
    Points
    311
    Par défaut
    Je vais effectivement regarder de ce coté. Je pensais que la version de Qt comme elle détectait elle-même la version de MSVC , elle se chargeait de mettre les include qui vont bien.

  11. #11
    Membre averti
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Points : 311
    Points
    311
    Par défaut
    J'ai un peu progressé.
    Il faut effectivement rajouter des includes et des librairies dans la configuration du projet afin de pointer sur le SDK windows.
    POur l'instant j'arrive donc à compiler une librairie de mon projet, mais sa plante au build.
    Problème de link :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LNK2019: symbole externe non résolu __imp_EncodePointer référencé dans la fonction __atonexitinit
    MSVCRTD.lib(atonexit.obj)

  12. #12
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    EncodePointer() est dans kernel32.dll, il te faudra donc lier à kernel32.lib pour l'importer.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Membre averti
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Points : 311
    Points
    311
    Par défaut
    Bon finalement tout est OK.
    j'avais un problème de chemin.
    Au final, il m'a donc fallut rajouter dans les .pro un include sur le répertoire des includes du SDK, ainsi que les libs kernel32 et uuid

    Ce qui m'inquiète un peu c'est d'utiliser une lib kernel32 alors que je veux une compilation en 64 bits ....

    Pas sur d'arriver à mes fins su ce coup. Au moins j'aurais déjà réussi à compiler avec MSVC sous QtCréator.

  14. #14
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Le nom est historique, la DLL s'appelle Kernel32 dans tous les cas.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fichier my.cnf introuvable?
    Par david06600 dans le forum Installation
    Réponses: 6
    Dernier message: 05/12/2011, 16h43
  2. [APACHE]fichier mysqli.dll introuvable au démarrage
    Par mealtone dans le forum Apache
    Réponses: 2
    Dernier message: 13/10/2005, 10h43
  3. [DEBUTANT]Le fichier spécifié est introuvable
    Par Battosaiii dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 04/04/2005, 16h36
  4. [Fichier I/O] Problème de compilation.
    Par Roming22 dans le forum C++
    Réponses: 6
    Dernier message: 03/10/2004, 23h09
  5. Copier coller Fichier windows
    Par KPitN dans le forum Windows
    Réponses: 8
    Dernier message: 20/04/2004, 17h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo