2011年07月
2011年07月27日
※英語でも書いてあります。 [Boost.Test] Where is boost::test_tools::tt_detail::check_impl ? — Gist
C++向けに単体テストを書くとき、以前はCppUnitというツールを使っていたのだが、色々調べているうちに「CppUnitは記述が面倒」ということを知り、別のツールを試してみることに。
そこで、C++向けの総合ライブラリ「Boost」に入っている単体テストツール「Boost.Test」を使ってみたのだが、
を元にコードを書き
以下のコマンドでコンパイルをしても
g++ -I/PATH/TO/BOOST -L/PATH/TO/BOOST/bin.v2/libs/test/build/gcc-4.3.3/release/link-static/threading-multi -lboost_unit_test_framework soulgem_test.cpp -o soulgem_test
以下のようなエラーが出てしまう。
undefined reference to `boost::test_tools::tt_detail::check_impl( ...
ちなみに、Boostのバージョンは1.46.1、GCCのバージョンは4.3.3である。
で、ぐぐっても英語含めそれらしい結果が出なくて困っていたのだが、-lboost_unit_test_frameworkに相当するバイナリ(/PATH/TO/BOOST -L/PATH/TO/BOOST/bin.v2/libs/test/build/gcc-4.3.3/release/link-static/threading-multi/libboost_unit_test_framework.a)のあるフォルダを漁っていると、そこに「test_tools.o」なるファイルを発見。これをコンパイル時にリンク対象として追加し
g++ -I/PATH/TO/BOOST -L/PATH/TO/BOOST/bin.v2/libs/test/build/gcc-4.3.3/release/link-static/threading-multi -lboost_unit_test_framework /PATH/TO/BOOST/bin.v2/libs/test/build/gcc-4.3.3/release/link-static/threading-multi/test_tools.o soulgem_test.cpp -o soulgem_test
とすると、見事コンパイルが通った。
2011年07月18日
RubyKaigi2011に参加してます。現在、RubyKaigi3日目の会場から記事を書いています。
で、その中のイベントの一つ「!RubyKaigi (NotRubyKaigi)」(当日話したい人が登録して話す場)で発表してきました。あまり脈絡のない内容ですみません。ただ、意外と反響があったようですが…。
2011年07月04日
7/2(土)のRuby勉強会@札幌-18、および7/3(日)の札幌C++勉強会#2で発表しました。
Rubyについては、ライブラリ管理システム「Rubygems」へライブラリを公開したときの話を、またC++については、マクロを使って関数の挙動を本来とは違うものにするという話をしました。
余談:そのRuby勉強会の際、私が作ったライブラリ "DevNull" の話をしたところ、mrknさんより「Ruby1.9.3ではそれに相当するものが標準で入るよ」というコメントを頂きました…。(参考資料:同日のmrkn氏の発表資料 15ページ参照)