Cirfe
2015-07-07 14:33
采纳率: 35.1%
浏览 2.5k
已采纳

gcc编译没有问题,但是执行提示找不到共享库

描述一下我遇到的问题,编译某个文件的时候需要用一个共享库,比如说是a.so.0.0.0
该共享库在/home/cc/test目录下.我写了一个测试文件,使用该共享库.并且在/usr/lib目录下
建立了一个链接a.so指向/home/cc/test/a.so.0.0.0.
编译文件
gcc test.c -la -o test
编译没有问题.
但是执行就会提示,找不到a.so.0.0.0.
这是什么问题?我不是已经走了链接了吗?而且为什么编译没有问题?

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

3条回答 默认 最新

  • 知常曰明 2015-07-07 22:29
    已采纳

    也可以使用ld改变你的可执行文件引用so的位置

    打赏 评论
  • oyljerry 2015-07-07 15:23

    运行时找的路径不是跟link一样的,运行时路径是LD_LIbrary_PATH环境变量决定的,你也可以添加你自己的其它路径,然后source生效。

    打赏 评论
  • threenewbee 2015-07-07 15:29

    看下你的makefile,你的库路径是哪里?是不是用的环境变量。如果用了环境变量,先输出下看看,你的so在不在里面。

    打赏 评论

相关推荐 更多相似问题