Quand je compile mon programme C++ dans Visual Studio Express, il dit qu'il ne peut pas trouver atlbase.h
. Est-ce qu'il me manque un SDK ou quelque chose ?
Réponses
Trop de publicités?Situation
Avec Visual Studio 2017 Community Edition, nous avons installé " Visual C++ ATL support " et le support MFC et ATL. L'erreur s'est tout de même produite dans notre projet x64.
Solution
Nous avons corrigé certains chemins avec les deux commandes suivantes :
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>mklink /d atlmfc "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc"
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\lib>mklink /d amd64 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\lib\x64
Détails
Nous avons finalement trouvé l'en-tête atlbase.h
en C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\include
. Ce chemin d'accès n'a tout simplement pas été ajouté au répertoire VC Include par l'utilisateur. vsvars32.bat
L'en-tête n'a donc pas été trouvé pendant la construction.
vsvars32.bat comprend la ligne suivante :
@if exist "%VCINSTALLDIR%ATLMFC\INCLUDE" set INCLUDE=%VCINSTALLDIR%ATLMFC\INCLUDE;%INCLUDE%`.
Cela a permis de C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include
dans notre machine.
Nous avons créé une jonction de répertoire, ainsi l'outil de construction trouve atlbase.h
dans le répertoire attendu (c'est la première commande de la section Solution ci-dessus) :
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>mklink /d atlmfc "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc"
Après, le linker n'a pas trouvé atls.lib
(voir Impossible d'ouvrir le fichier atls.lib ). Cela était dû au fait que la structure de fichier attendue était la suivante lib
devrait contenir directement la version x86 des librairies et lib\amd64
doit contenir les variantes x64. Au lieu de cela, lib\x86
contenait les versions x86 et lib\x64
contenait les versions 64 bits. Comme nous construisons un projet 64 bits, la création d'un autre répertoire junk de amd64 à x64 a résolu le problème :
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\lib>mklink /d amd64 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\lib\x64
Cet en-tête semble faire partie de l'en-tête SDK pour la plate-forme Windows .
Vous devriez rechercher le fichier dans votre ordinateur. Cela vous dira si vous l'avez manqué.
J'ai eu le même problème avec l'exemple de projet. J'ai spécifié les propriétés du projet exemple et le projet exemple s'est compilé avec succès.
Visual Studio 8
Pour l'en-têteC:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include
Para .lib
fichierC:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib
- Réponses précédentes
- Plus de réponses