qq_38710135
mnpgl
2017-07-22 02:36
采纳率: 100%
浏览 3.2k

/usr/bin/ld: 找不到 -lmsqlclient 关于这个问题残留疑惑,和解决方案

先上一张暂时解决问题的图图片说明

我从网上看到都说是环境配置问题,我应该怎么更改配置?!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dead911
    呆的久 2017-07-22 03:12
    已采纳
    首先... 你是不是拼错了,看上去少个y?
    -lmysqlclient
    
    如果你使用
    g++ -Wall conntext.cpp -o conn -lmysqlclient
    还是报错的话,那就是linux搜索路径里没有包含libmysqlclient.so所在路径。
    
    你执行下mysql_config --cflags --libs就明白了。
    在我机器上执行结果是这样的(不同机器上返回路径可能有所不同)
    chao@chao-VirtualBox:~$ mysql_config --cflags --libs
    -I/usr/include/mysql 
    -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -lrt -ldl
    
    也就是说,你输入这个命令
    g++ conntext.cpp `mysql_config --cflags --libs`
    实际上在执行的是
    g++ conntext.cpp -I/usr/include/mysql -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -lrt -ldl
    你可以看到,这个命令指定了额外的lib路径
    
    如果你想用第一种方法编译的话,方法很多
    你可以手动把mysql_config --cflags --libs返回的路径添加到
    环境变量$PATH或者$LD_LIBRARY_PATH里
    你也可以做个在/usr/lib做个libmysqlclient.so的软连接
    就是不太灵活罢了
    
    
    点赞 评论

相关推荐