1

C API https://downloads.mariadb.org/client-native/1.0.0/を使用して mariaDB に接続しようとしています。Windows 8 を使用しており、コードのコンパイルと記述に Code::Blocks 12.11 を使用しています。

  • D:\Programmering\biblotek\C\mariaDB-API\includeに .h ファイルを含むフォルダーを配置しました
  • D:\Programmering\biblotek\C\mariaDB-API\lib の.lib ファイルを含むフォルダー

そう:

\include has all the .h files

\lib     has all the .lib files

リンク:ライブラリをリンクするために次のことを行いました:

- \includeフォルダーを[設定] --> [コンパイラ] にリンクしました。 --> [検索ディレクトリ] --> [コンパイラ]

-Settings --> Compiler.. --> Search directory --> Linkerで\libフォルダーをリンクしました。

-設定でlibmariadb.libをリンク--> コンパイラ.. --> リンカー設定

一時停止...

-プロジェクト内の\includeフォルダーのリンク--> ビルド オプション... --> 検索ディレクトリ -->コンパイラ

-プロジェクトのリンクされた\libフォルダー--> ビルド オプション... --> 検索ディレクトリ -->リンカー

- プロジェクト内のlibmariadb.libをリンク--> ビルド オプション... --> リンカー設定

プロジェクトで --> ビルド オプション...コンパイラ"GNU GCC Compiler"を選択しました。

コンパイラ フラグ: -g

これはコードです:

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <C:\MinaProgram\Libs\sqlclientC\include\mysql.h>
#include <my_global.h>
#include <mysql.h>

int main(void) {

MYSQL mysql;
MYSQL_ROW row;
const char *aQuery = "SELECT * from livedata";

if(mysql_library_init(0, NULL, NULL)) { //Initiera bibliotek
fprintf(stderr, "could not initialize MySQL library\n");
exit(1);
}
printf("AH!\n");
MYSQL mysql;
mysql_init(&mysql);

if(!mysql_real_connect(&mysql,"localhost","root","ooops","firsttest",0,NULL,0)) { //Anslut till databas, error meddelande om fel.
fprintf(stderr, "Failed to connect to server!\n");
}

/*GO CODE*/
if(!mysql_real_query(&mysql, aQuery, strlen(aQuery))) {
fprintf(stderr, "Query error, kinda'\n");
}

//mysql_fetch_row()

/*CLOSURE */
mysql_close(&mysql);
mysql_library_end();

return EXIT_SUCCESS;
}

コンパイルすると、これがビルド ログの応答です。

 ||=== test, Release ===|
obj\Release\main.o:main.c:(.text.startup+0x32)||undefined reference to `mysql_library_init'|
obj\Release\main.o:main.c:(.text.startup+0x54)||undefined reference to `mysql_init@4'|
obj\Release\main.o:main.c:(.text.startup+0x95)||undefined reference to `mysql_real_connect@32'|
obj\Release\main.o:main.c:(.text.startup+0xb4)||undefined reference to `mysql_real_query@12'|
obj\Release\main.o:main.c:(.text.startup+0xeb)||undefined reference to `mysql_close@4'|
obj\Release\main.o:main.c:(.text.startup+0xf1)||undefined reference to `mysql_library_end'|
||=== Build finished: 6 errors, 0 warnings (0 minutes, 3 seconds) ===|

私はstackoverflowとgoogleを検索しましたが、うまくいくものは何も見つかりませんでした。

CでmariaDBに接続する方法はありますか? (このプログラムを動作させる方法)

敬具!

地球の寿命のヒント: Windows 8 を取得しないでください。

4

1 に答える 1

0

Project --> Build Options... --> Linker Settings でフル パス D:\Programmering\biblotek\C\mariaDB-API\lib\libmariadb.lib をリンクします。

リンカーの「検索ディレクトリ」が機能するかどうかわかりません。機能させることができませんでした

または、CMake を使用して Code::Blocks プロジェクトを生成することもできます

于 2013-02-15T08:57:25.620 に答える