2006年09月20日

PHP-4.4.4のインストールで mysql のエラー

PHP-4.4.4 に、--with-mysql オプションをつけてビルドしようとしたところ、configure は問題なくとおりましたが make の実行中にエラーが発生して止まってしまいました。

undefined reference to 'mysql_drop_db'
undefined reference to 'mysql_create_db'


make の途中で発生したエラーなのでどうしたものかと思っていたのですが、下記のような記事を見つけ、本来は不要な関数をコンパイルしようとしているために発生しているのだということが分かりました。

SE,プログラマーのための無料の求人,求職,人材サイト Programmer's
http://www.databasebank.com/programmers/frm_detail.php?v_id=1393

上記の記事ではソースファイルの該当行をコメントアウトすることで解決したようですが、その付近に #ifdef MYSQL_VERSION_ID < 40000 という行があったので、定義で回避できるのではないかと思い、やってみました。

ソースツリーのトップにある Makefile を開き、下記の行を追加します。場所はどこでも構わないと思いますが、MYSQL_ が集まっているあたりにしました。私の環境ではバージョン番号は 4.1.20 でしたので、40120 にしました。

MYSQL_VERSION_ID = 40120


make clean してから make します。コンパイルが無事通りました。

本当は、configure などの準備段階で MYSQL_VERSION_ID にしかるべき値がセットされるはずだと思うのですが、ここらへんの不具合といえるのかもしれません。


posted by はるこち at 13:04| Comment(0) | TrackBack(0) | サーバ関連 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。