l108103t
Cirfe
采纳率35.1%
2015-07-07 14:33

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条回答

  • gamefinity 知常曰明 6年前

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

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 6年前

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

    点赞 评论 复制链接分享
  • oyljerry oyljerry 6年前

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

    点赞 评论 复制链接分享

相关推荐