mysqlまたはsqliteをコンパイルするときに問題が発生する解決方法
2457 ワード
本文で述べたこの2つの問題は私がコンパイル時に現れた問題で、それから本文で述べた方法で解決したので、わざわざメモして後で調べるのに便利です.
linuxでのC操作MYSQLを使用
コンパイル時にヘッダファイルincludeが存在しないことを示す解決策:
解決策はmysql-develをインストールすることです.
linuxでのC操作SQLLITEの使用
linuxはコマンドの使用に重点を置いているので、winの操作がないと上手になりやすいので、CがSQLITEを操作するときにエラーが発生しやすいので、簡単なプログラムを作ってテストして、どのように応用するかを示します.
終了、保存.(コード入力が完了したら、Escキーを押して、::wq、車に戻れば引く)
これでコンパイルすればいいはずです.最終実行'./db.out'実行可能ファイル.
linuxでのC操作MYSQLを使用
コンパイル時にヘッダファイルincludeが存在しないことを示す解決策:
mysql.h ,gcc test.c -o test -I /usr/lib/mysql/include -L /usr/lib/mysql/ -lmysqlclient ‘-I’ mysql.h
解決策はmysql-develをインストールすることです.
$ sudo yum install mysql-devel -y //RHEL,Centos,Fedora
$ sudo apt-get install libmysqlclient-dev -y //Ubuntu
, mysql.h ,-I
$ sudo find /usr/ -name 'mysql.h'
$ gcc -I/usr/include/mysql ...
linuxでのC操作SQLLITEの使用
linuxはコマンドの使用に重点を置いているので、winの操作がないと上手になりやすいので、CがSQLITEを操作するときにエラーが発生しやすいので、簡単なプログラムを作ってテストして、どのように応用するかを示します.
#include
#include
int main( void )
{
sqlite3 *db=NULL;
char *zErrMsg = 0;
int rc;
// ,
rc = sqlite3_open("zieckey.db", &db);
if( rc )
{
fprintf(stderr, "Can't open database: %s
", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
else printf("You have opened a sqlite3 database named zieckey.db successfully!
Congratulations! Have fun ! ^-^
");
sqlite3_close(db); //
return 0;
}
終了、保存.(コード入力が完了したら、Escキーを押して、::wq、車に戻れば引く)
:[root@localhost temp]# gcc opendbsqlite.c -o db.out
:
[root@localhost temp]# gcc opendbsqlite.c -o db.out
opendbsqlite.c:11:21: sqlite3.h:
opendbsqlite.c: In function `main':
opendbsqlite.c:19: `sqlite3' undeclared (first use in this function)
opendbsqlite.c:19: (Each undeclared identifier is reported only once
opendbsqlite.c:19: for each function it appears in.)
opendbsqlite.c:19: `db' undeclared (first use in this function)
。
:
[root@localhost temp]# gcc opendbsqlite.c -o db.out
/tmp/ccTkItnN.o(.text+0x2b): In function `main':
: undefined reference to `sqlite3_open'
/tmp/ccTkItnN.o(.text+0x45): In function `main':
: undefined reference to `sqlite3_errmsg'
/tmp/ccTkItnN.o(.text+0x67): In function `main':
: undefined reference to `sqlite3_close'
/tmp/ccTkItnN.o(.text+0x8f): In function `main':
: undefined reference to `sqlite3_close'
collect2: ld returned 1 exit status
。
[root@localhost temp]# gcc opendbsqlite.c -o db.out -lsqlite3 -L/usr/local/sqlite3/lib -I/usr/local/sqlite3/include
これでコンパイルすればいいはずです.最終実行'./db.out'実行可能ファイル.