8月 052012
 

久しぶりにC++ネタ。JSONを生成するプログラムをC++で書こうなんて人がそもそもいない気もするが、boost::property_tree::write_json()を使うと簡単にJSON出力ができる。

1#include <iostream>
2#include <sstream>
3#include <boost/property_tree/json_parser.hpp>
4using namespace std;
5 
6int main(int argc, char *argv[])
7{
8  if(argc < 2)
9  {
10    cerr << "Usage: " << argv[0] << " message" << endl;
11    return 1;
12  }
13 
14  boost::property_tree::ptree pt;
15  pt.put("message", argv[1]);
16  boost::property_tree::write_json(cout, pt, false);
17  return 0;
18}

Continue reading »

1月 222012
 

64ビット版Fedora14にboost-1.48.0の32ビット版バイナリをインストールしようとしたら、結構手こずってしまったので忘れないようにメモ。RPMがあればyumでインストールしてしまいたいが、あいにくFedora14のRPMリポジトリはboost-1.44.0以降、更新される気配がなくなってしまったので(本エントリ執筆時点でFedora16はboost-1.47.0まで公開されていた)、自前でビルドせざるを得なくなった。開発マシンが32ビット環境から64ビット環境に変わっても、32ビット版のモジュールをコンパイルすることはまだあるので、64ビット環境でも32ビット版を一緒にコンパイルできた方がずっと楽だ。

まず64ビット版のboostをビルドするには、Boost Getting Started on Unix Variantsの手順に従えばなんなくビルドできるのだが、バージョンアップを考慮してインストール先のディレクトリをデフォルトから変更してビルドする。

Continue reading »