※ ChatGPTを利用し、要約された質問です(原文:MySQL接続を行うソースのコンパイルが出来ず苦しんでます)
MySQL接続ができず苦しんでいます。
このQ&Aのポイント
C++でMySQLに接続してデータを表示するソースを作成しているが、コンパイルができずエラーが発生している。
「mysql.h」をヘッダでインクルードしているが、必要な変数がundefined referenceとなってしまう。
「libmysqlclient.so」へのパスを通そうとしたが、エラーは解消されていない。初心者でアドバイスを求めている。
MySQL接続を行うソースのコンパイルが出来ず苦しんでます
皆さん、こんにちは。
C++でソースを書いています。
内容としてはMySQLに接続し、
DBから得たデータを表示するソースなので、
以下のように、
「mysql.h」をヘッダでインクルードしているわけなのですが、
---------------------
#include <mysql.h>
---------------------
作ったソースをmakeしようとすると、
次のように、
DB接続に必要と思いソース内で使用した、
以下の変数について、undefined referenceで怒られてしまいます。
------------------------------------------------
/home/test/dbtest.cpp:178: undefined reference to `mysql_init'
/home/test/dbtest.cpp:181: undefined reference to `mysql_real_connect'
/home/test/dbtest.cpp:182: undefined reference to `mysql_error'
/home/test/dbtest.cpp:188: undefined reference to `mysql_query'
/home/test/dbtest.cpp:189: undefined reference to `mysql_error'
/home/test/dbtest.cpp:193: undefined reference to `mysql_use_result'
/home/test/dbtest.cpp:197: undefined reference to `mysql_free_result'
/home/test/dbtest.cpp:198: undefined reference to `mysql_close'
------------------------------------------------
そこで、下記URLの内容にあるエラー内容と
完全に同じでしたので、
「libmysqlclient.so」へのパスを通そうと思いました。
http://dev.mysql.com/doc/refman/4.1/ja/link-errors.html
ということで、
findで「libmysqlclient.so」のパスを調べ、
makeの際に、-Iでディレクトリを指定しなおしましたが、
やはり、同じエラーが表示されます。
------------------------------------------------
# find / -name "libmysqlclient.so" -print
/usr/lib/mysql/libmysqlclient.so
# make -I /usr/lib/mysql/libmysqlclient.so
------------------------------------------------
どうしていいか分からず困ってしまいました。
初心者で初歩的な部分かもしれませんが、
何かアドバイスいただけると
とてもありがたいです。
どうぞ宜しくお願い致します。
OSはFedora9です。
viでソースを編集しながら、
makeをしたりしています。
お礼
php504さん! どんぴしゃでした! すごくいい勉強になりました! ありがとうございました。 ご指摘のとおり、 Makefile内に追記してみましたら、 見事にmakeに成功しました! どうもでした!