不能编译简单的mysql程序

不能编译简单的mysql程序,mysql,c,compiler-construction,Mysql,C,Compiler Construction,cblog.c: #include "html.h" #include "config.h" #include <mysql/mysql.h> //#include <my_global.h> #include <stdio.h> #include <stdlib.h> int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row;

cblog.c:

#include "html.h"
#include "config.h"
#include <mysql/mysql.h>
//#include <my_global.h>
#include <stdio.h>
#include <stdlib.h>

int main() {
        MYSQL *conn;
        MYSQL_RES *res;
        MYSQL_ROW row;

        conn = mysql_init(NULL);

        // Connect to database
        if (!msyql_real_connect(conn, server, username, password, database, 0, NULL, 0)) {
                fprintf(stderr, "%s\n", mysql_error(conn));
                exit(1);
        }

        // Query the DB
        if (mysql_query(conn, "show tables")) {
                fprintf(stderr, "%s\n", mysql_error(conn));
                exit(1);
        }
        res = mysql_use_result(conn);

        htmlf("MySQL Tables in mysql database:\n");
        while ((row = mysql_fetch_row(res)) != NULL)
                htmlf("%s \n", row[0]);

        mysql_free_result(res);
        mysql_close(conn);

        html("Hello World!");
        return 0;
}
输出:

ttouch cblog$ make
gcc cblog.c html.c -g -Wall -I/usr/include/mysql -fPIC -pipe -fstack-protector --param=ssp-buffer-size=4 -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer -g -DNDEBUG -o cblog -L/usr/lib -lmysqlclient -lpthread -lz -lm -lssl -lcrypto -ldl
cblog.c: In function ‘main’:
cblog.c:16:2: warning: implicit declaration of function ‘msyql_real_connect’ [-Wimplicit-function-declaration]
  if (!msyql_real_connect(conn, server, username, password, database, 0, NULL, 0)) {
  ^
/tmp/ccs1WQsi.o: In function `main':
/media/files/Lab/cblog/cblog.c:16: undefined reference to `msyql_real_connect'
collect2: error: ld returned 1 exit status
make: *** [all] Error 1
我知道这个问题已经被回答了一千多次,我在互联网上搜索过,我测试过把
mysql\u config
放在开头或结尾。我知道它提供了正确的路径(选中)

ls/usr/lib/| grep-mysql

libmysqlclient.a
libmysqlclient_r.a
libmysqlclient_r.so
libmysqlclient_r.so.18
libmysqlclient_r.so.18.0.0
libmysqlclient.so
libmysqlclient.so.18
libmysqlclient.so.18.0.0
libmysqld.a
libmysqld.so
libmysqld.so.18
libmysqlservices.a
mysql
tdbcmysql1.0.0
mysql_com.h
mysqld_ername.h
mysqld_error.h
mysql_embed.h
mysql.h
mysql_time.h
mysql_version.h
ls/usr/include/mysql | grep-mysql

libmysqlclient.a
libmysqlclient_r.a
libmysqlclient_r.so
libmysqlclient_r.so.18
libmysqlclient_r.so.18.0.0
libmysqlclient.so
libmysqlclient.so.18
libmysqlclient.so.18.0.0
libmysqld.a
libmysqld.so
libmysqld.so.18
libmysqlservices.a
mysql
tdbcmysql1.0.0
mysql_com.h
mysqld_ername.h
mysqld_error.h
mysql_embed.h
mysql.h
mysql_time.h
mysql_version.h

很抱歉,我问了一个noobish的问题,但是我已经绞尽脑汁大约4-5个小时了

你的函数名有一个输入错误,
msyql\u real\u connect
应该是
mysql\u real\u connect
你的函数名有一个输入错误,
msyql\u real\u connect
应该是
mysql\u real\u connect

如果查看mysql头文件,您是否看到了
msyql\u real\u connect()的定义?如果您这样做,您可以尝试编辑该文件。。。将
#error
指令放入其中,以确保包含的是您正在查看的文件。。。您还可以尝试使用
nm
命令查看库文件中定义的符号,以检查符号是否存在。如果是,请尝试临时重命名该文件,以确保它是链接到的文件。。。希望有帮助:)谢谢你,伙计。结果证明这只是一个输入错误,但你提供了有用的信息(我是一个noob)用于功能调试。谢谢!:)如果查看MYSQL头文件,是否会看到
msyql\u real\u connect()
的定义?如果您这样做,您可以尝试编辑该文件。。。将
#error
指令放入其中,以确保包含的是您正在查看的文件。。。您还可以尝试使用
nm
命令查看库文件中定义的符号,以检查符号是否存在。如果是,请尝试临时重命名该文件,以确保它是链接到的文件。。。希望有帮助:)谢谢你,伙计。结果证明这只是一个输入错误,但你提供了有用的信息(我是一个noob)用于功能调试。谢谢!:)