2

ここの例に従っていますが、コードは同じです。

彼が説明するように mysql_config --libs と mysql_config --cflags をコンソールに入力すると、彼が示しているのと同じ出力が得られます。それでも、使用してコンパイルしようとすると

g++ -o 出力ファイル $(mysql_config --cflags) test.cpp $(mysql_config --libs)

エラーが発生します:

test.cpp:3:25: エラー: mysql.h: そのようなファイルまたはディレクトリはありません
test.cpp: 関数「int main()」内:
test.cpp:6: エラー: 「MYSQL」はこのスコープで宣言されていません
test.cpp: 6: エラー: âconnâ はこのスコープで宣言されていません
test.cpp:7: エラー: âMYSQL_RESâ はこのスコープで宣言されていません
test.cpp:7: エラー: âresâ はこのスコープで宣言されていません
test.cpp:8: エラー: âMYSQL_ROWâは、このスコープ
test.cpp:8 で宣言されていません: エラー: 予想される `;' 'row' の前
test.cpp:13: エラー: 'mysql_init' はこのスコープで宣言されていません
test.cpp:17: エラー: 'mysql_real_connect' はこのスコープで宣言されていません
test.cpp:18: エラー: 'mysql_error' はこのスコープで宣言されていません
test.cpp:19: エラー: 「exit」 はこのスコープで宣言されていませんでした
test.cpp:22: エラー: 「mysql_query」 はこのスコープで宣言されていませんでした
test.cpp:23: エラー: 「mysql_error」 はこのスコープで宣言されていませんでした
test.cpp:24 : エラー: 「exit」 はこのスコープで宣言されていませんでした
test.cpp:27: エラー: 「mysql_use_result」 はこのスコープで宣言されていませんでした
test.cpp:31: エラー: 「row」 はこのスコープで宣言されていませんでした test.cpp:31: エラー: 「mysql_fetch_row」 は宣言されてい
ましたこのスコープで宣言されていません
test.cpp:35: エラー: 'mysql_free_result' はこのスコープで宣言されていません
test.cpp:36: エラー: 'mysql_close' はこのスコープで宣言されていません

「whereis mysql」を試すと、/usr/bin/mysql、/usr/lib/mysql、および /usr/share/mysql が表示されますが、mysql.h が正確にどこにあるかわかりません。私が取り組んでいるサーバーの管理者は、MySQL をインストールしたと言っており、実際に phpMyAdmin を使用してテーブルを作成/操作できます。

また、この特定の問題についての提案を教えてください。MySQL の C++ ラッパーは知っていますが、今のところ C API のみを使用しようとしています。ありがとう!

4

2 に答える 2

2

Here the code compiles fine (I just had to include stdlib.h for exit()). MySQL headers should be in /usr/include/mysql, and since you got the same output for "mysql_config --cflags", you probably have a missing/broken package.

Try reinstalling the packages he list on the begining of the article, or check in which package the headers are in your distro. I'm am using Ubuntu, and here the package with the headers is libmysqlclient15-dev.

于 2012-07-14T18:00:48.817 に答える
1

ファイルは /usr/include/mysql の下のどこかにあるはずです。次のようなものを使用して検索してみることができますfind /usr -name mysql.h

于 2012-07-14T17:50:35.750 に答える