我在 tcl 脚本 (linux) 中执行 load libtdbcmysql1.0.0.so
,这给出了错误:
couldn't load file "libmysql.so.15"
我认为 libmysql.so.15
可能是 libtdbcmysql1.0.0.so
的依赖库,所以我检查了使用
ldd libtdbcmysql1.0.0.so
但是这个命令给出了以下输出:
linux-gate.so.1 => (0xffffe000)<br>
libc.so.6 => /lib/libc.so.6 (0xf7da1000)<br>
/lib/ld-linux.so.2 (0x003b4000)<br>
正如我们所见,它没有提及任何关于 libmysql.so.15
的内容。
谁能解释一下这里发生了什么?以及如何解决这个错误?
最佳答案
MySQL 的 TDBC 驱动程序仅软链接(soft link)到主 MySQL 客户端库。这既允许在没有客户端库 (!) 的系统上构建驱动程序,又确保可以使用更复杂的客户端库搜索代码。 (同样的技术用于支持其他数据库,例如 Oracle 和 PostgreSQL,以及 ODBC 互操作性平台。在任何普通系统上构建所有这些都是一件令人头疼的事情!)
但它可能会出错。您是否安装了 MySQL 客户端库?如果是这样,动态库的名称是什么?它位于哪里?如果一切都安装在正确的位置,设置了适当的记录环境变量,但 TDBC 驱动程序仍然找不到它,您可能想要提交错误报告。 (您可能可以使用 tdbc::odbc
驱动程序包来解决这个问题,我相信它的质量更高,但我警告说我还没有尝试过它。)
关于linux - 加载 libtdbcmysql1.0.0.so 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22754742/