Mac OS X LionでDBD::mysqlのビルドに失敗するので、解決方法があるのならご教示いただきたいです。調べた範囲では、MySQLのx86版のライブラリがなぜか64bit版として認識されているために、mysql.bundleのビルドに失敗しているようです。
# make test 時のエラー
# Failed test 'use DBD::mysql;'
# at t/00base.t line 21.
# Tried to use 'DBD::mysql'.
# Error: Can't find 'boot_DBD__mysql' symbol in /Users/yanbe/.cpanm/work/1311478548.57810/DBD-mysql-4.019/blib/arch/auto/DBD/mysql/mysql.bundle
# at (eval 7) line 2
# Compilation failed in require at (eval 7) line 2.
# BEGIN failed--compilation aborted at (eval 7) line 2.
FAILED--Further testing stopped: Unable to load DBD::mysql
make: *** [test_dynamic] Error 255
-> FAIL Installing DBD::mysql failed. See /Users/yanbe/.cpanm/build.log for details.
# DBD::mysqlのMakefile内に記述された、当該ファイルを関連ライブラリとリンクする
# コマンドを別個に実行したときのエラー
yanbe:DBD-mysql-4.019 yanbe$ MACOSX_DEPLOYMENT_TARGET=10.3 cc -bundle -undefined dynamic_lookup dbdimp.o mysql.o -o blib/arch/auto/DBD/mysql/mysql.bundle -L/usr/local/mysql/lib -lmysqlclient -lz -lm -lmygcc
ld: warning: ignoring file dbdimp.o, file was built for i386 which is not the architecture being linked (x86_64)
ld: warning: ignoring file mysql.o, file was built for i386 which is not the architecture being linked (x86_64)
ld: warning: ignoring file /usr/local/mysql/lib/libmysqlclient.dylib, file was built for unsupported file format which is not the architecture being linked (x86_64)
ld: warning: ignoring file /usr/local/mysql/lib/libz.a, file was built for archive which is not the architecture being linked (x86_64)
ld: warning: ignoring file /usr/local/mysql/lib/libmygcc.a, file was built for archive which is not the architecture being linked (x86_64)
2 Answers 1 Followers -
typester@github Daisuke Murase
i386用ではなくx86_64用のlibmysqlclientをインストールすればビルドできると思いますよ。
LionのSystem Perlはi386とx86_64のユニバーサルバイナリですが、64bit対応しているCPUではそのうちのx86_64のバイナリの方が使われますので、そちらのアーキテクチャのライブラリをそろえてあげる必要があります。
Snow Leopard 時代に 5.8 の方の System Perl をお使いでしたら、あちらは x86_64 のバイナリがなかったのでi386のライブラリが必要だったのですけどね。
yanbe Yusuke Yanbe
ご回答ありがとうございました。ご助言のとおりx86_64用のlibmysqlclientをインストールしたところ正常でビルドできました。おかげさまでLionを開発用に使い始められます!
当方の環境について一応補足しますと、質問をした当初はperlbrewからインストールしたPerl 5.8.8と、MySQLの公式Webサイトからダウンロードした.dmg形式で配布されているi386版のバイナリ(mysql-5.5.15-osx10.6-x86.dmg)をインストールした環境でDBD::mysqlをビルドしようとして失敗していました。その後typestarさんのアドバイスを参考に、MySQLのx86_64版のバイナリ(mysql-5.5.15-osx10.6-x86_64.dmg) を改めてインストールした上でビルドしてみたところ、成功したというのが実際のところです。
エラーメッセージの内容と、最近までi386がデフォルトだったということが重なって、MySQLよりもむしろperlbrewで構築したPerlの環境の方が何かおかしいのではないかという先入観から、かえってはまってしまったようです。
Perlのアプリケーションをmod_perlで動かす場合とFastCGIで動かす場合とStar...
2 Answers 9 Followers
Mac OS X Lion でperlbrew + cpanm がちゃんと動作するのかが知りた...
2 Answers 3 Followers
MouseとMouseX::Foreignを使ったクラスを作っているのですが、after 'n...
1 Answers 1 Followers
MySQLで画像データを格納するのにLONGBLOB型のフィールドを2つ用意したがperlでC...
0 Answers 1 Followers
チャットでMySQLを使用しようと思っていますがSELECTやINSERT文がどうなるのかわか...
4 Answers 1 Followers
1 人がこの質問をフォローしています。