を使用して現在のディレクトリ内のアイテムをリストしようとしていますboost::filesystem
が、次のようになります:
Unhandled exception at 0x6B59DF8D (msvcr110.dll) in BoostTest.exe: 0xC0000005: Access violation reading location 0x9BE3B7A1.
これが私のコードです:
#include <iostream>
#include <boost/filesystem.hpp>
using namespace boost::filesystem;
int main() {
std::cout << "Hello World!\n";
auto end_it = directory_iterator();
for(auto it = directory_iterator(current_path()); it != end_it; it++) {
std::cout << it->path() << std::endl;
}
std::cin.get();
return 0;
}
mingw から vs2012 に切り替えたばかりですが、リンク エラーなどの可能性があると思います。これらの 32 ビット ライブラリとリンクしています。
- boost_filesystem-vc110-mt-1_52.lib
これらのファイルは、実行可能ファイルのディレクトリにあります。
- boost_filesystem-vc110-mt-1_52.dll
- boost_system-vc110-mt-1_52.dll
この Web サイトからダウンロード: http://boost.teeks99.com/
プラットフォームは「Win32」に設定されています。
Visual Studio 2012 ウィンドウのログは次のとおりです。
'BoostTest.exe' (Win32): Loaded 'C:\Users\Ell\Programming\C++\BoostTest\Debug\BoostTest.exe'. Symbols loaded.
'BoostTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'. Cannot find or open the PDB file.
'BoostTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Cannot find or open the PDB file.
'BoostTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Cannot find or open the PDB file.
'BoostTest.exe' (Win32): Loaded 'C:\Users\Ell\Programming\C++\BoostTest\Debug\boost_filesystem-vc110-mt-1_52.dll'. Module was built without symbols.
'BoostTest.exe' (Win32): Loaded 'C:\Users\Ell\Programming\C++\BoostTest\Debug\boost_system-vc110-mt-1_52.dll'. Module was built without symbols.
'BoostTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcp110.dll'. Symbols loaded.
'BoostTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcr110.dll'. Symbols loaded.
'BoostTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\advapi32.dll'. Cannot find or open the PDB file.
'BoostTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcrt.dll'. Cannot find or open the PDB file.
'BoostTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sechost.dll'. Cannot find or open the PDB file.
'BoostTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rpcrt4.dll'. Cannot find or open the PDB file.
'BoostTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sspicli.dll'. Cannot find or open the PDB file.
'BoostTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cryptbase.dll'. Cannot find or open the PDB file.
'BoostTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcp110d.dll'. Symbols loaded.
'BoostTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcr110d.dll'. Symbols loaded.
First-chance exception at 0x6B59DF8D (msvcr110.dll) in BoostTest.exe: 0xC0000005: Access violation reading location 0x9BF7B7A1.
Unhandled exception at 0x6B59DF8D (msvcr110.dll) in BoostTest.exe: 0xC0000005: Access violation reading location 0x9BF7B7A1.
The program '[5292] BoostTest.exe' has exited with code 0 (0x0).
私のプラットフォームは、Visual Studio 2012 64 ビット コンパイラを搭載した Windows 7 64 ビットです。
私はこれまで Linux と mingw でしか開発したことがないので、何かを間違ってリンクしたり、そのようなものをリンクしたりしている可能性があります。おそらくアーキテクチャの問題です (ただし、32 ビット アプリケーションは 32 ビット ライブラリを使用しているという印象を受けました)。どんな助けでも大歓迎です!