【问题标题】:C++ MySQL++ undefined reference to dlcloseC++ MySQL++ 未定义对 dlclose 的引用
【发布时间】:2013-09-17 19:56:26
【问题描述】:

所以我在使用 GCC 的 Ubuntu 12.04 LTS x64 下使用 mysql++ 编译程序时收到此错误。详细其:

/usr/lib/i386-linux-gnu/libmysqlclient.a(client_plugin.c.o): In function add_plugin:
(.text+0x253): undefined reference to dlclose
/usr/lib/i386-linux-gnu/libmysqlclient.a(client_plugin.c.o): In function mysql_client_plugin_deinit:
(.text+0x2c7): undefined reference to dlclose
/usr/lib/i386-linux-gnu/libmysqlclient.a(client_plugin.c.o): In function mysql_load_plugin_v:
(.text+0x524): undefined reference to dlopen
/usr/lib/i386-linux-gnu/libmysqlclient.a(client_plugin.c.o): In function mysql_load_plugin_v:
(.text+0x54a): undefined reference to dlsym
/usr/lib/i386-linux-gnu/libmysqlclient.a(client_plugin.c.o): In function mysql_load_plugin_v:
(.text+0x67f): undefined reference to dlerror
/usr/lib/i386-linux-gnu/libmysqlclient.a(client_plugin.c.o): In function mysql_load_plugin_v:
(.text+0x695): undefined reference to dlclose

我已经安装了:libmysql++-3、libmysqlclient18 和 libmysqlclient18-dev、libdml3 和 libdml3-dev 库按以下顺序链接:

/usr/lib/libmysqlpp.a
/usr/lib/i386-linux-gnu/libdl.a
/usr/lib/i386-linux-gnu/libmysqlclient.a

作为链接器,我拥有以下目录:

/usr/lib
/usr/lib/i386-linux-gnu

【问题讨论】:

  • 听起来你应该只在-lmysqlclient之后-ldl...

标签: c++ ubuntu gcc mysql++


【解决方案1】:

将评论变成答案。以免丢失:

您必须在-lmysqlclient 之后才链接-ldl。链接顺序很重要。

【讨论】:

  • 当我在一个完全不相关的项目中遇到同样的错误时,这很有帮助。而且我不知道自己在做什么,在我猜测是依赖对象之后我移动了dl,它解决了我的问题!谢谢。
猜你喜欢
  • 1970-01-01
  • 2011-04-21
  • 2011-11-22
  • 2019-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-25
  • 1970-01-01
相关资源
最近更新 更多