メインコンテンツに移動

Log4cplus

プログラムを作るとき,画面に
  n=100 t=23.333
とか表示しますよね.でもMPIだと, 同時にメッセージを書くと
  n=100 t=2n=100 t=23.333n=.333231n=

読めないですよ普通.このようなものはmasterCPUだけが表示すれば良いが,スレーブノードの進行状況も同時に見たい,とか思うだろう君も.

でも48CPUなら画面が48枚必要・・・無理だし.ノード別にファイルを開いて出力すると,バッファーに溜まってすぐに出てこないので,全然見当違いなデバッグをする羽目に陥る.

そこで,ログ書きライブラリーを使うわけですな

配布パッケージのインストール

こやつのlog4clus-新しげpkgをダウンロードしてインストールすれば,利用可能である.

LOG4CPLUS入門

こっちだ

上記配布パッケージの製作

配布パッケージ作成方法(2.0.6)台湾積体電路製造

TSMCのM1チップでビルドしようとすると, ARM64に対応してない,などと叫ばれるのが面倒である. そこで, 豚を育成する.

X86ビルド

X86ターミナルで実行する.

cd x86_64
tar zxf ../log4cplus-2.0.6.tar.gz
cd log4cplus-2.0.6/
./configure --prefix=/usr/local
make

これで,以下のものができる

lipo -info ./libs/*dylib
Non-fat file: .libs/liblog4cplus-2.0.3.dylib is architecture: x86_64
Non-fat file: .libs/liblog4cplus.dylib is architecture: x86_64
Non-fat file: .libs/liblog4cplusU-2.0.3.dylib is architecture: x86_64
Non-fat file: .libs/liblog4cplusU.dylib is architecture: x86_64

なんで2.0.3なのかは不明だ.

ARM64ビルド

ARM64ターミナルで実行する

cd arm64
tar zxf ../log4cplus-2.0.6.tar.gz
cd log4cplus-2.0.6/
./configure --prefix=/usr/local
make
lipo -info ./.libs/*dylib
Non-fat file: ./.libs/liblog4cplus-2.0.3.dylib is architecture: arm64
Non-fat file: ./.libs/liblog4cplus.dylib is architecture: arm64
Non-fat file: ./.libs/liblog4cplusU-2.0.3.dylib is architecture: arm64
Non-fat file: ./.libs/liblog4cplusU.dylib is architecture: arm64

こっちでインストールしてしまえ

fswatch -x /usr/local/ > files.log &
sudo make install

豚にする

それでは豚に変更しよう.

mkdir ../universal
for file in ../../x86_64/log4cplus-2.0.6/.libs/*dylib; do lipo -create -arch x86_64 $file -arch arm64 ./.lib
s/$(basename $file) -output ../universal/$(basename $file);done

できたかな?

lipo -info ../universal/*dylib
Architectures in the fat file: ../universal/liblog4cplus-2.0.3.dylib are: x86_64 arm64
Architectures in the fat file: ../universal/liblog4cplus.dylib are: x86_64 arm64
Architectures in the fat file: ../universal/liblog4cplusU-2.0.3.dylib are: x86_64 arm64
Architectures in the fat file: ../universal/liblog4cplusU.dylib are: x86_64 arm64

ではこいつらをインストール

sudo cp ../universal/liblog4cplus*dylib /usr/local/lib/
lipo -info /usr/local/lib/liblog4cplus*dylib
Architectures in the fat file: /usr/local/lib/liblog4cplus-2.0.3.dylib are: x86_64 arm64
Architectures in the fat file: /usr/local/lib/liblog4cplus.dylib are: x86_64 arm64
Architectures in the fat file: /usr/local/lib/liblog4cplusU-2.0.3.dylib are: x86_64 arm64
Architectures in the fat file: /usr/local/lib/liblog4cplusU.dylib are: x86_64 arm64

よっしゃ,いいみたいだね.

kill %1
fswatch_analyze.sh -c _binary files.log
pkgbuild --identifier log4cplus --root _binary log4cplus_2_0_6-osx11.2.pkg

配布パッケージ作成方法(1.1.2)Intel

暇だから,自分で配布パッケージを作成したい場合,まずはダウンロード.ほんで

cd log4cplus-1.1.2
./configure --prefix=/usr/local
fswatch -x /usr/local > files.log &
sudo make install
kill %1
fswatch_analyze.sh -c _binary files.log
pkgbuild --identifier log4cplus --root _binary     log4cplus_1_1_2-osx10.10.pkg