gcc不会编译和运行MySQL C库

#include  #include  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 to mysql_get_client_info的main': MySQL-Test.c:(.text+0xa): undefined reference to

怎么了? 我的系统是ubuntu

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) 

你需要gcc -o mysql-test MySQL-Test.c -L/usr/local/mysql/lib -lmysqlclient -lz

-L/usr/local/mysql/lib替换为客户端库所在的位置(如果它不在您的libpath中)

请参阅MySql 有关构建客户端的说明 。

在Linux上使用Netbeans

打开make file(MakeFile)并添加以下行

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

环境块正下方。

然后右键单击项目节点,选择Properties,Build并将$(MYSQL_LIBS)添加到Additional options参数。

您没有链接到库。 使用: gcc -llibrarygoeshere -o mysql-test MySQL-Test.c有关与gcc链接的更多信息,请参见此处 。

这不是编译错误。 这是一个链接错误。

添加mysql库以使用选项-lmysql创建可执行文件应该可以解决问题。

你忘了链接MySQL库了。 尝试将-lmysql添加到编译行。

有关更多信息,请参阅http://www.adp-gmbh.ch/cpp/gcc/create_lib.html 。

也许迟到但为我工作
如果您使用的是IDE,则应将库链接到项目。
我在ubuntu 12.4 64x上使用CodeBlocks 。 要链接库,您应该转到项目 – >构建选项 – >链接器设置并添加库。 这是我的lib路径: /usr/lib/x86_64-linux-gnu/libmysqlclient.so

希望有用……