7
#include <my_global.h>
#include <mysql.h>

int main(int argc, char **argv)
{
  printf("MySQL client version: %s\n", mysql_get_client_info());
}

~$ gcc -o mysql-test MySQL-Test.c

端末からこのテスト プログラムを実行しようとしていますが、次のエラー メッセージが表示されます。

/tmp/cceEmI0I.o: 関数main': MySQL-Test.c:(.text+0xa): undefined reference tomysql_get_client_info' 内

なにが問題ですか?私のシステムはubuntuです

4

7 に答える 7

16

MySQLと呼ばれる特別なスクリプトが付属していますmysql_config。MySQL クライアントをコンパイルし、それを MySQL データベース サーバーに接続するための有用な情報を提供します。

パス--libsオプション - MySQL クライアント ライブラリとのリンクに必要なライブラリとオプション。

$ mysql_config --libs

典型的な出力:

-L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib64 -lssl -lcrypto

これをコンパイル/リンク行に追加できます。

gcc -o mysql-test MySQL-Test.c $(mysql_config --libs)
于 2010-08-03T12:00:58.447 に答える
4

あなたが必要gcc -o mysql-test MySQL-Test.c -L/usr/local/mysql/lib -lmysqlclient -lz

クライアント ライブラリがある場所に置き換え-L/usr/local/mysql/libます (まだ libpath にない場合)

クライアントの構築については、MySql の説明を参照してください。

于 2010-08-03T11:56:19.837 に答える
3

Linux で Netbeans を使用する場合

make ファイル (MakeFile) を開き、次の行を追加します。

# These are the flags that gcc requires in order to link correctly against our installed 
# client packages
MYSQL_LIBS := $(shell mysql_config --libs)

環境ブロックのすぐ下。

次に、プロジェクト ノードを右クリックし、[プロパティ]、[ビルド] の順に選択して、[$(MYSQL_LIBS)追加オプション] パラメーターに追加します。

于 2014-08-21T07:53:46.257 に答える
2

ライブラリにリンクしていません。使用: gcc とのリンクの詳細については、こちらgcc -llibrarygoeshere -o mysql-test MySQL-Test.cを 参照してください。

于 2010-08-03T11:55:46.600 に答える
2

コンパイルエラーではありません。リンクエラーです。

mysql ライブラリを追加して、オプションで実行可能ファイルを作成すると、-lmysqlうまくいくはずです。

于 2010-08-03T11:56:51.780 に答える
2

MySQL ライブラリにリンクするのを忘れました。-lmysqlコンパイル行に追加してみてください。

詳細については、 http://www.adp-gmbh.ch/cpp/gcc/create_lib.htmlを参照してください。

于 2010-08-03T11:57:48.513 に答える
1

遅いかもしれませんが、うまく
いきました IDE を使用している場合は、ライブラリをプロジェクトにリンクする必要があります。ubuntu 12.4 64xで
使用しています。CodeBlocksライブラリをリンクするには、[プロジェクト] -> [ビルド オプション] -> [リンカー設定] に移動し、ライブラリを追加する必要があります。これは私のライブラリパスです:/usr/lib/x86_64-linux-gnu/libmysqlclient.so

役に立つことを願って...

于 2013-11-04T07:53:18.737 に答える