web-dev-qa-db-ja.com

C ++ #include <atlbase.h>が見つかりません

Visual Studio ExpressでC++プログラムをコンパイルすると、atlbase.h。 SDKまたは何かが不足していますか?

29
Ramilol

ヘッダーatlbase.hを含むMicrosoft ATL(Active Template Library)は Windows 2003 SDK に含まれていますが、新しいWindows SDKリリースには含まれていません。 Visual StudioのProfessionalエディションにも含まれています。

13
wkl

Windows Driver Kit Version 7.1. に含まれています。

35
Bernhard Wally

Visual Studio 2017

Visual Studio Installerを実行するとき、個々のコンポーネントタブを選択し、SDK、ライブラリ、およびフレームワークの下でVisual C++ ATL Supportが選択されていることを確認してください。 VS Installer Visual C++ ATL Support selected

25
KymikoLoco

Visual Studio 2015のユーザーの場合、Common Tools for C++がインストールされていることを確認してください(VSインストーラーの一部)。

4
user145400

Visual Studio 2017 Expressエディションのソリューション

Visual Studio 2017 ExpressエディションでCOM C++プロジェクトをビルドすると、同じエラーが発生しました。ここで複数のユーザーが述べたように、Visual StudioのExpressエディションにはATLサポートが含まれていません。したがって、C++ COM/ATLプロジェクトをビルドするには、少なくともCommunityエディションが必要です

Expressエディションを本当に使用する必要がある場合は、 Build Tools for Visual Studio 2017 をダウンロードしてインストールできます。セットアップ中に、 'Visual C++ ATL for x86およびx64'コンポーネントを必ず有効にしてください。

その後、プロジェクトプロパティにVC++ディレクトリを追加します。

  • ディレクトリを含める:C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\atlmfc\include
  • ライブラリディレクトリ:C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\atlmfc\lib\x86

これで、VC++コンパイラはATLソースおよびライブラリファイルを見つけることができます。

3
pogosama

これは Windows Platform SDK の一部のようです。

コンピュータでファイルを検索する必要があります。不足している場合は、それがわかります。

1
Drew Dormann

状況

Visual Studio 2017 Community Editionでは、「Visual C++ ATLサポート」とMFCおよびATLサポートをインストールしました。エラーはまだx64プロジェクトで発生しました。

解決

次の2つのコマンドでいくつかのパスを修正しました。

_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
_

詳細

最終的に、C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\includeでヘッダー_atlbase.h_が見つかりました。このパスは、単に_vsvars32.bat_によってVC Includeディレクトリに追加されなかったため、ビルド中にヘッダーが見つかりませんでした。

vsvars32.batには次の行が含まれます。

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

これは、マシンのC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\includeに解決されました。

ディレクトリジャンクションを作成したので、ビルドツールは予想されるディレクトリで_atlbase.h_を見つけます(これは上記のソリューションセクションの最初のコマンドです)。

_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"
_

その後、リンカは_atls.lib_を見つけられませんでした( ファイルatls.libを開けない を参照)。これは、ファイル構造がlibにx86バージョンのlibsが直接含まれ、_lib\AMD64_にx64バリアントが含まれる必要があるためです。代わりに、_lib\x86_にはx86バージョンが含まれ、_lib\x64_には64ビットバージョンが含まれていました。 64ビットプロジェクトをビルドしたため、AMD64からx64に別のディレクトリジャンクを作成すると、問題が解決しました。

_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

サンプルプロジェクトでも同じ問題が発生しました。サンプルプロジェクトのプロパティを指定し、サンプルプロジェクトを正常にコンパイルしました。

Visual Studio 8
ヘッダー用
C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include

にとって .libファイル
C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib

0
user2117423