Ubuntu8.10 で OpenMQ4.3 の C API サンプルプログラムをコンパイル
後々遺恨を残しそうな解決に逃げてしまったけども。
まず、rpm を alien 使ってインストールした場合はディレクトリ構成が異なるので、ディレクトリを読み替える必要あり*1。これは、/usr/local 下に OpenMQ をインストールした例。
サンプルプログラムの場所は、
/usr/local/MessageQueue/mq/examples/C
で、いきなり、libstdc++6 が入ってる Ubuntu8.10 の環境だが、サンプルプログラムは libstdc++5 のライブラリを使用しているため、これをインストールしてしまう。
# aptitude install libstdc++5
・・・検証が終わったらアンインストールしといた方がいいかもしれない。ソースコードはまだ見てないが、おそらくちょっと書き換えればこういうことしなくても動くようには出来ると思う。*2
g++ をコンパイルに使用するので、無い場合はインストールしてから、下記を実行
# aptitude install g++ # g++ のインストール。 # g++ -DLINUX -D_REENTRANT -I/usr/local/MessageQueue/mq/include \ -o Producer -L/usr/local/MessageQueue/mq/lib \ -Wl,-rpath,/usr/local/MessageQueue/mq/lib \ -lmqcrt Producer.c
これでOK。(警告は出るけど。)
使用する前に、
# vi /etc/ld.so.conf.d/OpenMQ.conf /usr/local/MessageQueue/mq/lib
と、mq の lib を追加して、
# ldconfig
しておく。
使用例。ブローカ(JMSサーバ)の場所が 192.168.1.7 、登録するキューの名前が"task.list"だったときの例。
./Producer -h 192.168.1.7 -t queue -d task.list
stdin の内容がどんどんキューに登録される。入力内容はファイルに用意しといて、リダイレクトしてやったら大量に登録できるだろう。