c_iamokのプロフィール
- ベストアンサー数
- 2
- ベストアンサー率
- 100%
- お礼率
- 60%
- 登録日2008/05/28
- Apacheモジュールのコンパイルの件で質問させていただきます。
Apacheモジュールのコンパイルの件で質問させていただきます。 Apacheモジュールを作成し、 makeにてコンパイルしたところ、 正常にコンパイルが出来ましたので、 confにモジュール動作の記述を入れ、 Apacheを再起動したところ、 soファイルに、 「abc」という関数が定義されていない! ----- # /usr/local/apache2/bin/apachectl restart httpd: Syntax error on line 58 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_test.so into server: /usr/local/apache2/modules/mod_test.so: undefined symbol: abc ----- という事で叱られてしまいました。 「abc」という関数は、 作成したApacheモジュールで確かに使用しており、 「test.h」という自作ライブラリに入っている関数でありますが、 そのモジュールをコンパイルしたときは、 何も怒られず正常にコンパイルが成功していて、 モジュール内に記述した「test.h」も 正常にincludeできていたと思われます。 モジュールのコンパイルの時は 正常にコンパイルできて、 Apacheの再起動時には怒られるといいのは、 パスの参照先が Apache起動時とコンパイル時で異なるからという事でしょうか? 合っているかわかりませんが、 念のため、 以下の通りパスを追記する場所で、 関数「abc」を記述しているライブラリの場所を追記してみたのですが、 やはり、Apache起動を試みると、 soファイル内の関数(abc)何て知らん!と怒られてしまいました。 ----- # vi /etc/ld.so.conf # ldconfig # LD_LIBRARY_PATH=/home/test/; export LD_LIBRARY_PATH ----- こうゆう場合、 どうすれば、モジュールのsoファイルを 正常に読んでくれて、Apacheを起動してくれるでしょうか。 何かアドバイスいただけるとありがたいです。 宜しくお願い致します。 開発OSはFedora9です。ApacheモジュールはCで普通に書いています。
- C++でMySQLへの接続を試みるも失敗してしまいました
皆様こんにちは。 http://questionbox.jp.msn.com/qa3838662.html http://okwave.jp/qa4845183.html 上記URLのページの内容とほぼ同一でしたので、 参考にしつつ、 C++でMySQLへの接続を行い、 プログラムの動作中で得る変数を DB内のテーブルに insertするプログラムを書いてはみたものですが、 どうもうまく行かず困っています。 プログラム内で実行したかったのは、 プログラム内で得た2つの変数を MySQLに登録するという内容でした。 プログラムを動かすと、 「不正な命令です」とプログラムが止まるのですが、 どこで止まるかを1つづつ確認したら、 MySQLにinsertコマンドを出すところで 止まるのが分かりました。 insertする2変数(「answer1」と「answer2」)は共に、 英数字で構成される100文字以内のものです。 インサートしたいテーブル名は「table_0413」としています。 テーブル「table_0413」には、 「A1」と「A2」という名前の2つのカラムを設けています。 ---------------------------------------------------------- char query[256]; if(sprintf(query, "INSERT INTO table_0413 VALUES (%s,%s)", answer1, answer2)); mysql_query(conn, query); ---------------------------------------------------------- どうすれば、 プログラム内で得た2変数の値を、 正常にDBにinsertできるようになるのでしょうか? 簡単な内容でしたら、 申し訳ありませんが、 アドバイスいただけると、とても嬉しいです。 宜しくお願いします。