我正在使用MAC OSX,并试图编写一个“test”msyql应用程序,该应用程序只测试到本地数据库的连接:
#include <my_global.h>
#include <mysql.h>
int main(void)
{
MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql, MYSQL_READ_DEFAULT_GROUP, "examplemysql");
if(!mysql_real_connect(&mysql, "localhost", "someuser", "somepassword", "sampledb", 0, NULL, 0))
{
fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(&mysql));
}
}我使用以下命令编译: gcc -I/usr/local/mysql/include -L/usr/local/mysql/lib mysql.c
我得到以下错误
未定义符号
"_mysql_options",引用自:
cceohP7E.o中的_main
"_mysql_real_connect",引用自:
cceohP7E.o中的_main
"_mysql_init",引用自:
cceohP7E.o中的_main
"_mysql_error",引用自:
cceohP7E.o中的_main
ld:找不到符号
collect2: ld返回1个退出状态
我不是C/Unix专家,但我想学习。我知道我这里有64位的架构。这会是个问题吗?告诉我我做错了什么。
谢谢。
发布于 2010-12-07 18:33:04
就像其他人提到的,你错过了图书馆。幸运的是,MySQL通过命令行的mysql_config实现了这一点。
gcc `mysql_config --include` mysql.c `mysql_config --libs`发布于 2010-12-07 17:51:21
您需要在共享库libmysql.so中链接,这些都是链接器错误,并试图查找其他符号。
就像这样..。
gcc -I/usr/local/mysql/include -L/usr/local/mysql/lib mysql.c -lmysql
发布于 2012-06-05 19:09:13
我正在为OSX狮子和任何人更新这个答案.就因为这对我来说很难。
mysql_config是一个选项,或者自己指定gcc标志是另一个选项,但是如果没有正确的C连接器,则都会失败。
我在Lion10.7.4 Macbook air上下载了从http://ftp.dc.aleron.net/pub/mysql/Connector-C/获得的mysql-连接器-c-6.0.2-osx10.5-x86-64 bit.tar
解压缩所有文件并将各自的/bin /include和/lib文件复制到相应的/usr/local/bin、/usr/local/include和/usr/lical/lib目录作为根目录。
然后我使用gcc -o mysqlapp mysqlapp.c -L /usr/local/lib -l mysqlclient -lz -I /usr/local/include
C使用mysql.h,一切都编译并运行良好。我最初从www.mysql.com下载的连接器不能正常工作。我不知道那是怎么回事。
https://stackoverflow.com/questions/4379775
复制相似问题