- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Apache再起動でエラー。mysql.hのリンクが出来てないぽいです。)
Apache再起動でエラー。mysql.hのリンクが出来てないぽいです。
このQ&Aのポイント
- Apache再起動時にエラーが発生し、mysql.hのリンクが正しく行われていないようです。
- Apacheモジュールのコンパイルは完了しており、soファイルも作成されていますが、mysql.hがリンクできていないため、再起動時にエラーが発生しています。
- mysql.hを静的にリンクする方法が分からず、環境変数の設定やldconfigの実行なども試しましたが、解決に至っていません。どのようにすればmysql.hをapacheに静的にリンクさせることができるでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
apacheのモジュール作ったりしたことはありませんので回答とは違うと思いますが… >「mysql.h」がリンク出来ていないのだろうとは思い、 >環境変数にmysql.hを追加したり、 >ldconfigをしたりしてみたものの、 ヘッダファイルをリンクする。 というのはかなりヘンです。 コンパイルの結果できあがった実行ファイルやライブラリにヘッダファイルをリンクする。なんてはあり得ません。 掲示された回答にあるようにdlopen()等を使用して、作成したモジュール側でMySQLのライブラリを読み込み、関数ポインタを取得する。 というように修正されてはどうでしょうか。 ソースコードの修正は大変かも知れませんが… MySQL側がセキリティアップデートなどで更新されれば、その恩恵が受けられるはずです。 # dlopen()での再読み込みは必要でしょうけど。 apxsでの静的リンクについては… http://www.apache.jp/pipermail/apache-users/2005-May/005335.html で質問している方がいますが…返答などはなかった…んですかね? 古い投稿な上にapacheも1.3系みたいですが。 ちなみに、静的リンクだと取り込んだ時点のモノしか使用しませんので、ライブラリの元がアップデートされた場合には再リンクが必要になります。 # ヘッダが更新されていれば再ビルド…でしょうね。
お礼
ドンピシャで、すぐに解決する事は出来ませんでしたが、 LDFLAG周りをいじっていたら、 OKになりました! アドバイスいただきましてありがとうございました。