Linux で C++ を使用して mysql データベースに接続したいと考えています。ローカル マシンで Ubuntu を実行しており、mysql サーバーとクライアント パッケージをインストールしています。
sudo apt-get install mysql-server mysql-client
Mysql++に出会いましたが、バイナリ パッケージから ./configure を実行すると問題が発生します。エラーは言う:
MySQL ライブラリ ディレクトリをチェックしています... configure: エラー: '/usr/lib64 /usr/lib /usr/lib64/mysql /usr/lib/mysql /usr/local/lib64 /usr/local に mysqlclient ライブラリが見つかりませんでした/lib /usr/local/lib/mysql /usr/local/mysql/lib /usr/local/mysql/lib/mysql /usr/mysql/lib/mysql /opt/mysql/lib /opt/mysql/lib/mysql /sw/lib /sw/lib/mysql'
このコマンドを使用してパスを指定できる場所がわかります。
./configure --with-mysql-lib=/...
しかし、私はそれをどこに向けるべきかわかりません。whereis mysql を使用しましたが、lib サブディレクトリを含む mysql ディレクトリが見つかりません。mysqlclient ライブラリはどこにインストールされますか?
編集:
見つけた後、libmysqlclient
私は戻ってきました
/usr/lib/i386-linux-gnu/libmysqlclient.so.18
/usr/lib/i386-linux-gnu/libmysqlclient.so.18.0.0
/usr/lib/i386-linux-gnu/libmysqlclient_r.so.18
/usr/lib/i386-linux-gnu/libmysqlclient_r.so.18.0.0
/usr/share/doc/libmysqlclient18
/usr/share/doc/libmysqlclient18/changelog.Debian.gz
/usr/share/doc/libmysqlclient18/copyright
/var/cache/apt/archives/libmysqlclient18_5.5.22-0ubuntu1_i386.deb
/var/lib/dpkg/info/libmysqlclient18:i386.list
/var/lib/dpkg/info/libmysqlclient18:i386.md5sums
/var/lib/dpkg /info/libmysqlclient18:i386.postinst
/var/lib/dpkg/info/libmysqlclient18:i386.postrm
/var/lib/dpkg/info/libmysqlclient18:i386.shlibs
というわけで試し./configure --with-mysql-lib=/usr/lib/i386-linux-gnu
てみたところ、文句なしに完了したようです。
これで ./configure を完了するという問題は解決しましたが、まだ問題が残っています。私が実行するとmake
、この時点までうまくいきます:
./lib/sql_buffer.h:31:0 からインクルードされたファイルでは、./lib/sql_buffer.cpp:26 から: ./lib/refcounted.h:258:2: エラー: 'size_t' は型に名前を付けていません。 /lib/refcounted.h: コンストラクター 'mysqlpp::RefCountedPointer::RefCountedPointer()': ./lib/refcounted.h:89:2: エラー: クラス 'mysqlpp::RefCountedPointer' には 'refs_ という名前のフィールドがありません' ./lib/refcounted.h: コンストラクター 'mysqlpp::RefCountedPointer::RefCountedPointer(T*)': ./lib/refcounted.h:100:2: エラー: クラス 'mysqlpp::RefCountedPointer' には何もありません'refs_' という名前のフィールド ./lib/refcounted.h:104:4: エラー: 'refs_' はこのスコープで宣言されていません ./lib/refcounted.h:104:16: エラー: 'size_t' の前に型指定子が必要です./lib/refcounted.h:104:16: エラー: 予想される ';' 'size_t' ./lib/refcounted.h の前: コンストラクター 'mysqlpp::RefCountedPointer:: 内
私は C++ に詳しくないので、エラーの正確な意味がわかりません。この時点から Mysql++ セットアップを取得する方法についてのヘルプまたは指示は大歓迎です。ただし、使用する代替ライブラリも探し始めていることは認めます。