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
希望有用……