wxWidgets なしの bitcoind
bitcoind の残りわずかな wxBase 依存を置き換えた。
bitcoind は SVN リビジョン 112 で wxWidgets や wxBase なしでコンパイルできるようになった。
main(int argc, char* argv[])が init.cpp に追加された。CMyApp とスタートアップフォルダー関連のコードは ui.cpp に移動された。ui.cpp と uibase.cpp は bitcoind ではリンクされない。
Makefile では GUI の使用を制御するために-DGUI を使用している。
MinGW、VC、Ubuntu でテストコンパイルした。Mac OS X のビルドを壊していないかわからないので、誰かが確認する必要がある。
素晴らしい、ありがとう!
あとは Fedora が楕円曲線暗号を同梱してくれさえすれば、Fedora でもビルドできるんだがな。(Fedora は特許の制約を理由にそれを除外している)
誰か他に Ubuntu でビルドを試した人はいるか?boost_threads ライブラリで変なリンカエラーが出る。クライアントが今や boost threads を使うようになったということと、私の boost のインストールが妙な状態になっていること以外、Bitcoin 自体とは関係がない。私がここで間抜け面をしている間に、誰か他に再現できる人はいるか?
g++ -O2 -Wno-invalid-offsetof -Wformat -g -D__WXDEBUG__ -D__WXGTK__ -DNOPCH -I”/usr/include” -I”/usr/local/include/wx-2.9” -I”/usr/local/lib/wx/include/gtk2-unicode-debug-static-2.9” -o bitcoind -L”/usr/lib” -L”/usr/local/lib” obj/nogui/util.o obj/nogui/script.o obj/nogui/db.o obj/nogui/net.o obj/nogui/irc.o obj/nogui/main.o obj/nogui/rpc.o obj/nogui/init.o obj/sha.o -Wl,-Bstatic -l boost_system -l boost_filesystem -l boost_program_options -l boost_thread -l db_cxx -l crypto -Wl,-Bdynamic -l gthread-2.0 /usr/bin/ld: cannot find -lboost_thread collect2: ld returned 1 exit status make: *** [bitcoind] Error 1
libboostthread が見つからないようだ。だが、
~/dev/bitcoin/trunk$ locate libboost_thread /usr/local/lib/libboost_thread.so /usr/local/lib/libboost_thread.so.1.40.0
g++ -O2 -Wno-invalid-offsetof -Wformat -g -D__WXDEBUG__ -D__WXGTK__ -DNOPCH -I”/usr/include” -I”/usr/local/include/wx-2.9” -I”/usr/local/lib/wx/include/gtk2-unicode-debug-static-2.9” -o bitcoind -L”/usr/lib” -L”/usr/local/lib” obj/nogui/util.o obj/nogui/script.o obj/nogui/db.o obj/nogui/net.o obj/nogui/irc.o obj/nogui/main.o obj/nogui/rpc.o obj/nogui/init.o obj/sha.o -Wl,-Bstatic -l boost_system -l boost_filesystem -l boost_program_options -l boost_thread -l db_cxx -l crypto -Wl,-Bdynamic -l gthread-2.0 /usr/bin/ld: cannot find -lboost_thread collect2: ld returned 1 exit status make: *** [bitcoind] Error 1
libboostthreadが見つからないようだ。だが、
~/dev/bitcoin/trunk$ locate libboost_thread /usr/local/lib/libboost_thread.so /usr/local/lib/libboost_thread.so.1.40.0
-l boost_thread が-Bstatic の後ろに来ているのに注目しろ。 libboost_thread を静的リンクしようとしていて、libboost_thread.a が見つからないんだ。
bitcoindに残っていた最後のいくつかのwxBase依存を置き換えた。
SVN rev 112では、bitcoindはwxWidgetsもwxBaseもなしでコンパイルできるようになっている。
main(int argc, char* argv])をinit.cppに追加した。CMyAppとStartupフォルダー関連はui.cppに移した。bitcoindはui.cppとuibase.cppをリンクしない。
makefileには、GUIを使うかどうかを制御する-DGUIがある。
MinGW、VC、Ubuntuでコンパイルテストした。Mac OSXのビルドを壊していないかは分からない。誰か確認してほしい。
最高だ!本当に素晴らしいニュースだ。これには wxbase がソフトウェアと統合されすぎていると思っていたんだが、間違っていてよかった。