3

Visual Studio 2012 Pro を使用して簡単な例をブーストでコンパイルしようとしているときに問題が発生しました。Boost のダウンロードとコンパイルに成功しました (ver 1.54.0)。リリース バージョンとデバッグ バージョンの両方で、例の 32 ビット バージョン (Win32 構成) をコンパイルしました。次に、64ビット用にビルドしようとしました(64ビットのWindows 7を使用しているため)。ここの指示に従いました: How to: Configure Visual C++ Projects to Target 64-Bit Platforms。残念ながら、コンパイルの試みはエラーで失敗しました:

1>server.cpp(38): fatal error C1083: Cannot open include file: 'boost/aligned_storage.hpp': No such file or directory

次の点を確認しましたが、何が間違っているのかわかりません。

  1. ファイルは正しい場所にあります (正確な場所: C:\dev\include\boost\boost\aligned_storage.hpp)。それがなければ、Win32 バージョンはコンパイルされませんでした。
  2. 環境変数 INCLUDE を "C:\dev/include;C:\dev/include/boost" に設定しました。
  3. 「VC++ ディレクトリ -> インクルード ディレクトリ」は次のようになります。

$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);$(INCLUDE);

  1. 「C/C++ -> 一般 -> 追加のインクルード ディレクトリ」は次のようになります。

C:\dev\include\boost;%(AdditionalIncludeDirectories)

私がコンパイルしようとしているコードは次のとおりです(これはもちろんその一部です):

//
// server.cpp
// ~~~~~~~~~~
//
// Copyright (c) 2003-2013 Christopher M. Kohlhoff (chris at kohlhoff dot com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//


#ifndef WINVER                  // Minimum platform is Windows 7
#define WINVER 0x0601
#endif

#ifndef _WIN32_WINNT            // Minimum platform is Windows 7
#define _WIN32_WINNT 0x0601
#endif

#ifndef _WIN32_WINDOWS          // Minimum platform is Windows 7
#define _WIN32_WINDOWS 0x0601
#endif

#include <cstdlib>
#include <iostream>
#include <boost/aligned_storage.hpp>
#include <boost/array.hpp>
#include <boost/bind.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <boost/noncopyable.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/asio.hpp>

using boost::asio::ip::tcp;

私の x64\Debug\BoostExample.log の内容:

Build started 2013-07-15 19:45:53.
 1>Project "C:\Users\LF\Develop\BoostExample\BoostExample\BoostExample.vcxproj" on node 2 (Build target(s)).
 1>ClCompile:
     C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64\CL.exe /c /Zi /nologo /W3 /WX- /Od /D _MBCS /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"x64\Debug\\" /Fd"x64\Debug\vc110.pdb" /Gd /TP /errorReport:prompt server.cpp
     server.cpp
 1>server.cpp(38): fatal error C1083: Cannot open include file: 'boost/aligned_storage.hpp': No such file or directory
 1>Done Building Project "C:\Users\LF\Develop\BoostExample\BoostExample\BoostExample.vcxproj" (Build target(s)) -- FAILED.

Build FAILED.

Time Elapsed 00:00:00.28

比較のために、Release\BoostExample.log を次に示します (完全な 32 ビット コンパイルの場合)。

Build started 2013-07-15 20:06:17.
 1>Project "C:\Users\LF\Develop\BoostExample\BoostExample\BoostExample.vcxproj" on node 2 (Build target(s)).
 1>ClCompile:
     C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\CL.exe /c /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D _MBCS /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\" /Fd"Release\vc110.pdb" /Gd /TP /analyze- /errorReport:prompt server.cpp
     server.cpp
   Link:
     C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\LF\Develop\BoostExample\Release\BoostExample.exe" /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:\Users\LF\Develop\BoostExample\Release\BoostExample.pdb" /OPT:REF /OPT:ICF /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\LF\Develop\BoostExample\Release\BoostExample.lib" /MACHINE:X86 /SAFESEH Release\server.obj
     Generating code
     Finished generating code
     BoostExample.vcxproj -> C:\Users\LF\Develop\BoostExample\Release\BoostExample.exe
 1>Done Building Project "C:\Users\LF\Develop\BoostExample\BoostExample\BoostExample.vcxproj" (Build target(s)).

Build succeeded.

Time Elapsed 00:00:02.50

どんな助けでも大歓迎です:D.

前もって感謝し
ます

4

0 に答える 0