C 语言连接 MySQL,使用 gcc 编译时出现链接错误:Undefined symbols for architecture x86_64

发布于 2022-08-29 20:06:11 字数 1229 浏览 34 评论 0

操作系统是 OS X 10.9.3 ,安装了 mysql-5.6.20-osx10.8-x86_64.dmg ,默认安装在了 mysql-5.6.20-osx10.8-x86_64 ,并且自动做了软连接: /usr/local/mysql -> mysql-5.6.20-osx10.8-x86_64 ,然后我手动做了软链接: /usr/include/mysql -> /usr/local/mysql/include/ 。

gcc 版本:

$ gcc -v

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.2.0
Thread model: posix

version.c 代码:

#include <stdio.h>
#include "mysql/mysql.h"

int main(int argc, char * argv[])
{
    printf("Mysql client version:%s\n", mysql_get_client_info());
    return 0;
}

编译时出现如下提示:

$ gcc version.c 

Undefined symbols for architecture x86_64:
  "_mysql_get_client_info", referenced from:
      _main in version-923a36.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

首先请大家原谅我比较笨…… 我从网络上搜索之后,发现这种情况出现的原因很多,有程序内代码拼写错误的,也有 Xcode 添加什么文件的,但是我仅仅是使用 vi 编辑的文件,直接使用 gcc 进行编译,现在还是搞不清楚我这种问题是怎么回事。请大神帮忙解答,感激不尽。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谁的年少不轻狂 2022-09-05 20:06:11

此错误是编译的时候没有找到相应的mysql库,你可以用以下方法解决。

终端输入:
gcc version.c -o version $(mysql_config --libs)

说明:
-o version version为output文件.

mysql_config --libs为安装的mysql库位置和库名字。

然后运行./version 即可。

国际总奸 2022-09-05 20:06:11

问下如何解决的?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文