MySQL++パッケージのインストール
まずMySQL/Connector Cをインストールする.
で,gettextパッケージをインストールする.
で,ここの新げなmysql++-3.xxxパッケージをインストールすれば使える.
エラーする場合, MySQL/Connector Cを正しく行なったか,確認せよ,
MySQL++パッケージの作成
上記インストールで配布しているパッケージを,大変暇だというわけで,わざわざ自分で作ってみたい場合,次のように行う.
Version 3.3.0 台湾積体電路製造
Version 3.2.Xが最近のOSではビルドしないのでバージョンアップ
X86ビルド
X86ターミナルで実行する.
$ cd mysql++-3.3.0 $ ./cofnfigure $ mv version version.bad <--- こいつがあるとビルドしない $ make $ lipo -info libmysqlpp.3.3.0.dylib Non-fat file: libmysqlpp.3.3.0.dylib is architecture: x86_64 $ otool -L libmysqlpp.3.3.0.dylib libmysqlpp.3.3.0.dylib: /usr/local/lib/libmysqlpp.3.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libmysqlclient.21.dylib (compatibility version 21.0.0, current version 21.0.0) /usr/local/lib/libintl.8.dylib (compatibility version 11.0.0, current version 11.0.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 905.6.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.100.5)
おう.今回は普通にできたぞ.
ARM64ビルド
ARM64ターミナルで実行する
$ cd mysql++-3.3.0 $ ./cofnfigure $ mv version version.bad <--- こいつがあるとビルドしない $ make $ lipo -info libmysqlpp.3.3.0.dylib Non-fat file: libmysqlpp.3.3.0.dylib is architecture: arm64 $ otool -L libmysqlpp.3.3.0.dylib libmysqlpp.3.3.0.dylib: /usr/local/lib/libmysqlpp.3.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libmysqlclient.21.dylib (compatibility version 21.0.0, current version 21.0.0) /usr/local/lib/libintl.8.dylib (compatibility version 11.0.0, current version 11.0.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 905.6.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.100.5) $ fswatch -x /usr/local/ > files.log & $ sudo make install $ kill %1 $ fswatch_analyze.sh -c _binary files.log
豚ビルド
$ mkdir arm64 $ cp libmysqlpp.3.3.0.dylib arm64 $ mkdir x86_64 $ cp ../../x86_64/mysql++-3.3.0/libmysqlpp.3.3.0.dylib x86_64 $ echo libmysqlpp.3.3.0.dylib|fatty_apple.sh arm64 x86_64 uni $ cp uni/libmysqlpp.3.3.0.dylib _binary/usr/local/lib $ pkgbuild --identifier mysql++ --root _binary mysql++-3.3.0-osx12.4.pkg
Version 3.2.5 台湾積体電路製造
X86ビルド
X86ターミナルで実行する.
cd mysql++-3.2.5 ./cofnfigure make lipo -info *dylib Non-fat file: libmysqlpp.3.2.5.dylib is architecture: x86_64 Non-fat file: libmysqlpp.3.dylib is architecture: x86_64 Non-fat file: libmysqlpp.dylib is architecture: x86_64
ARM64ビルド
ARM64ターミナルで実行する
cd mysql++-3.2.5 ./cofnfigure make lipo -info *dylib Non-fat file: libmysqlpp.3.2.5.dylib is architecture: arm64 Non-fat file: libmysqlpp.3.dylib is architecture: arm64 Non-fat file: libmysqlpp.dylib is architecture: arm64 fswatch -x /usr/local/ > files.log sudo make install
豚ビルド
それでは豚に変更しよう.
mkdir ../universal fatty_apple.sh ../../x86_64/mysql++-3.2.5/ . ../universal/ libmysqlpp*dylib Architectures in the fat file: ../universal//libmysqlpp.3.2.5.dylib are: x86_64 arm64 Architectures in the fat file: ../universal//libmysqlpp.3.dylib are: x86_64 arm64 Architectures in the fat file: ../universal//libmysqlpp.dylib are: x86_64 arm64 sudo cp ../universal/* /usr/local/lib kill %1 fswatch_analyze.sh -c _binary files.log pkgbuild --identifier mysql++ --root _binary mysql++-3.2.5-osx11.2.pkg
あれ. このままでは動作しないな.libmysqlclient.dylib の場所がわからないみたいだ.
手動書き換えプラン
otool -L ../../x86_64/mysql++-3.2.5/libmysqlpp.dylib /usr/local/lib/libmysqlpp.3.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/local/mysql/lib/libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0) /usr/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.3.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 904.4.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.60.1) otool -L ../../arm64/mysql++-3.2.5/libmysqlpp.dylib /usr/local/lib/libmysqlpp.3.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libmysqlclient.21.dylib (compatibility version 21.0.0, current version 21.0.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 904.4.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.60.1)
なんかlibintlがあったりなかったりで妙ではあるが, それはそれ. armにだけ@rpath が残ってしまっている.面白いから書き換えてみる:
install_name_tool -change "@rpath/libmysqlclient.21.dylib" "/usr/local/mysql/lib/libmysqlclient.18.dylib" libmysqlpp.3.2.5.dylib
できたかな:
otool -L libmysqlpp.dylib /usr/local/lib/libmysqlpp.3.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/local/mysql/lib/libmysqlclient.18.dylib (compatibility version 21.0.0, current version 21.0.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 904.4.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.60.1)
よっしゃ.
fatty_apple.sh ../../x86_64/mysql++-3.2.5/ . ../universal/ libmysqlpp*dylib pkgbuild --identifier mysql++ --root _binary mysql++-3.2.5-osx11.2.pkg
ううんだめだ.少なくともXCodeではビルドしないな・・・
おや.手動でinstall_namesを書き換えたバージョンはビルドしない.何か間違っているんだなあ.libmysqlclientがrpathのまま残っているものについては, DYLD_LIBRARY_PATHを直せば動作はする.つまり手動書き換えプランはダメなんだね.こっちを訂正して逃げることにする.
Version 3.2.5
cd mysql++-3.2.5 ./cofnfigure fswatch -x /usr/local > files.log & make install kill %1 fswatch_analyze.sh -c _binary files.log pkgbuild --identifier mysql++ --root _binary mysql++-3.2.5-osx10.15.pkg
Version 3.2.2
cd mysql++-3.2.2 ./cofnfigure fswatch -x /usr/local > files.log & make install kill %1 fswatch_analyze.sh -c _binary files.log pkgbuild --identifier mysql++ --root _binary mysql++-3.2.2-osx10.10.pkg