mysqlまたはsqliteをコンパイルするときに問題が発生する解決方法

2457 ワード

本文で述べたこの2つの問題は私がコンパイル時に現れた問題で、それから本文で述べた方法で解決したので、わざわざメモして後で調べるのに便利です.
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'実行可能ファイル.