ビットコイン・インスティテュート

Windows 7で​Bitcoinの​ビルドに​問題が​ある

人物: LobsterMan
LobsterMan 2010年9月14日12:14 UTC

Visual Studio(2010)を使ってBitcoinをソースからビルドしようとしている。win32のzipアーカイブに含まれているソースを使っている。新しいmakefileプロジェクトを作成してmakefileをインポートし、boost、wxwidgets、opensslのソースと、ビルド時に不足と報告されたいくつかのファイルを入手した。ビルドログがiostream.hが必要だと報告するところまで進んだので、libstdc++からそのコピーを見つけてきた。しかし、includesディレクトリにiostream.hを配置してビルドしようとすると、以下のような大量のエラーが出る:

1>------ Build started: Project: bitcoin_test, Configuration: Debug Win32 ------
1>Build started 9/14/2010 08:07:14.
1>InitializeBuildStatus:
1>  Touching "Debug\bitcoin_test.unsuccessfulbuild".
1>ClCompile:
1>  util.cpp
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(15): error C2143: syntax error : missing ';' before '<'
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(15): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(16): error C2146: syntax error : missing ';' before identifier 'cs_mapAddressBook'
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(16): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(16): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(17): error C2143: syntax error : missing ';' before '<'
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(17): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(23): error C2146: syntax error : missing ';' before identifier 'dbenv'
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(23): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(23): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(34): error C2143: syntax error : missing ';' before '*'
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(34): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(34): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(35): error C2146: syntax error : missing ';' before identifier 'strFile'
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(35): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(35): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(36): error C2143: syntax error : missing ';' before '<'
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(36): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\[myusername]\desktop\bitcoin-0.3.12\src\db.h(36): error C2238: unexpected token(s) preceding ';'

これは2つの異なるバージョンのiostream.hで発生した(db.hの<iostream.h>を<iostream>に変更してみたが同様)。includesディレクトリからiostream.hを削除すると、単にそのファイルが見つからないと報告されるだけで、上記のような何百行ものエラーは出ない。ファイルは一切変更しておらず、今はただWindows環境でプロジェクトをビルドできるようにしようとしているだけだ……

ここで少し行き詰まっていて、何が問題なのかよく分からない。正直なところ自分のやっていることを完全には理解していない(WindowsでのC++の経験があまりない)が、何が問題なのか心当たりのある人がいれば教えてもらえないかと思っている。