web-dev-qa-db-fra.com

C++ #include <atlbase.h> introuvable

Quand je compile mon programme, il dit qu'il ne trouve pas atlbase.h. Est-ce que je manque un SDK ou quelque chose?

25
Ramilol

Microsoft ATL (Active Template Library), qui inclut l'en-tête atlbase.h, est inclus dans le SDK Windows 2003 , mais il n'est pas inclus dans les versions plus récentes de Windows SDK. Il est également inclus avec les éditions professionnelles de Visual Studio.

12
wkl
35
Bernhard Wally

Visual Studio 2017

Lorsque vous exécutez Visual Studio Installer, sélectionnez l'onglet Composants individuels, puis, sous SDK, bibliothèques et cadres, assurez-vous que Visual C++ Support ATL est sélectionné .  VS Installer Visual C++ ATL Support selected

17
KymikoLoco

Pour les utilisateurs de Visual Studio 2015, assurez-vous que Common Tools pour C++ est installé (faisant partie du programme d'installation du VS).

3
user145400

Solution pour l'édition Visual Studio 2017 Express

J'ai eu la même erreur lors de la construction d'un projet COM C++ dans Visual Studio 2017 Express Edition. Comme mentionné par plusieurs utilisateurs ici, la prise en charge d'ATL n'est pas incluse dans l'édition Express de Visual Studio. Donc, pour construire un projet C++ COM/ATL, vous avez besoin au moins de la Community Edition.

Si vous avez vraiment besoin d'utiliser l'édition Express, vous pouvez télécharger et installer le Build Tools for Visual Studio 2017 . Assurez-vous d'activer le composant 'Visual C++ ATL pour x86 et x64' lors de l'installation.

Après cela, ajoutez des répertoires VC++ supplémentaires dans les propriétés du projet:

  • Inclure les répertoires: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\atlmfc\include
  • Répertoires de bibliothèque: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\atlmfc\lib\x86

Le compilateur VC++ devrait maintenant pouvoir trouver les fichiers source et de bibliothèque ATL.

2
pogosama

Cela semble faire partie du Windows Platform SDK .

Vous devriez rechercher le fichier sur votre ordinateur. Cela vous dira si vous le manquez.

1
Drew Dormann

Situation

Avec Visual Studio 2017 Community Edition, nous avons installé "Prise en charge de Visual C++ ATL" et MFC et ATL. L'erreur s'est encore 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 dans C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\include. Ce chemin n'a tout simplement pas été ajouté au répertoire VC Include par vsvars32.bat; l'en-tête n'a donc pas été trouvé lors de la construction.

vsvars32.bat comprend la ligne suivante:

@if exist "%VCINSTALLDIR%ATLMFC\INCLUDE" set INCLUDE=%VCINSTALLDIR%ATLMFC\INCLUDE;%INCLUDE%`.

Ceci résolu à C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include dans notre machine.

Nous avons créé une jonction de répertoire afin que l'outil de génération trouve atlbase.h dans le répertoire attendu (il s'agit de 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"

Ensuite, l'éditeur de liens n'a pas trouvé atls.lib (voir Impossible d'ouvrir le fichier atls.lib ). Cela était dû à la structure de fichier attendue: lib devait contenir directement la version x86 des bibliothèques et lib\AMD64 devait contenir les variantes x64. À la place, lib\x86 contenait les versions x86 et lib\x64 contenait les versions 64 bits. Depuis que nous construisons un projet 64 bits, la création d'un autre répertoire indésirable d'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
1
Froggy

J'ai eu le même problème avec le projet exemple. J'ai spécifié les propriétés du projet exemple et le projet exemple compilé avec succès.

Visual Studio 8
Pour en-tête
C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include

Pour le fichier .lib
C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib

0
user2117423