//usr/lib/libgdal.so.20:对‘mysql_store_result@libmysqlclient_20.0

网友投稿 585 2022-05-25

/usr/bin/ld: warning: libmysqlclient.so.20, needed by //usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link)

//usr/lib/libgdal.so.20:对‘mysql_store_result@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_affected_rows@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_insert_id@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_server_init@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_free_result@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_num_fields@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_field_count@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_real_connect@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_server_end@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_errno@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_use_result@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_fetch_lengths@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_close@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_options@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_init@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_field_seek@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_query@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_fetch_field@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_error@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_num_rows@libmysqlclient_20.0’未定义的引用

//usr/lib/libgdal.so.20:对‘mysql_fetch_row@libmysqlclient_20.0’未定义的引用

collect2: error: ld returned 1 exit status

line_det/CMakeFiles/line.dir/build.make:167: recipe for target ‘/home/dzh/Demo/line_det/devel/lib/line_det/line’ failed

make[2]: *** [/home/dzh/Demo/line_det/devel/lib/line_det/line] Error 1

CMakeFiles/Makefile2:455: recipe for target ‘line_det/CMakeFiles/line.dir/all’ failed

//usr/lib/libgdal.so.20:对‘mysql_store_result@libmysqlclient_20.0

make[1]: *** [line_det/CMakeFiles/line.dir/all] Error 2

Makefile:140: recipe for target ‘all’ failed

make: *** [all] Error 2

Invoking “make -j12 -l12” failed

终端进程“bash ‘-c’, ‘catkin_make’”已终止,退出代码: 1。

经过了一下午3h的摸索,终于解决了以上问题。总结一下让后面的学者少走弯路吧。报错原因是因为系统找不到libmysqlclient.so.20这个库。

1、那么我们先在Ubuntu系统中查找一下本地是否有这个文件。

输入find / -name libmysqlclient.so.20。如果有的话会在/usr/local/mysql/lib/中或者/usr/lib/mysql/plugin中,根据自己安装mysql时的路径来看。

2、如果有该文件,直接第3步。没有这个库的话,打开下面的百度网盘链接,然后下载到本地。切换到下载到的目录,然后输入sudo mv libmysqlclient.so.20 /usr/lib/mysql/plugin将库文件移动到mysql/plugin中。

3、现在我们有了这个库文件,我们需要将它设置一个软链接指向系统需要的文件名libmysqlclient.so.20。这样,只要系统想访问libmysqlclient.so.20,就会调用到这个库文件。大家可以把软连接当成是文件的引用,具体的解释在文末。

输入命令:sudo ln -s /usr/lib/mysql/plugin/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.20回车输入管理员密码,然后创建成功。如果输错了想删除软链接,输入rm -rf /usr/lib/libmysqlclient.so.20即可删除,也就是rm -rf 链接路径名。

4、我们再次编译项目,如果是在VsCode中哦,直接Ctrl+Shift+B,编译成功。

在Linux系统中,内核为每一个新创建的文件分配一个inode(索引结点),每个文件都有一个唯一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存中,从而实现对文件的快速访问。

链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link),相当于Windows下的快捷方式。

MySQL OpenCV Ubuntu

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数据库读写分离部署及配置操作手册
下一篇:Goland && Golang 的安装与配置
相关文章