微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Linux上共享库的问题

我试图编译/链接在Linux系统上的一个非常老的软件,我不能因为某种原因链接到我的系统上安装的共享库。

我从链接器中得到以下错误

/usr/bin/ld: cannot find -lXaw

但是,lib本身已安装。 如果我跑

ldconfig -v | grep libXaw

我得到(除其他外)这个命中:

简单的共享库

在交叉编译的.so文件中是否有检查符号的工具?

Mac OS X共享库跨平台开发

Linux,单声道,共享库和未解决的符号

我怎么知道我的.so库的脚印?

libXaw.so.7 -> libXaw7.so.7.0.0

库和链接到/ usr / lib btw。 所以没什么特别的

所以库在那里,ldconfigfind它。 ld什么可能导致ld在链接期间没有find库? 正如你可能已经猜到,我是共享库的东西很新。

有任何想法吗?

C / C ++与GCC:静态添加资源文件到可执行文件/库

Linux上的Java System.loadLibrary调用冻结

静态链接的共享对象? 或者是一个损坏的文件

在/ usr / local / lib中找不到gcc:链接库,但是/etc/ld/so.conf.d/libc.conf列出了它?

如何在移动到新机器时“移动”脚本所需的所有必要库

链接器可能会从字面上看“libXaw.so”。 是在/ usr / lib? 如果没有,你可以尝试添加它作为从libXaw7.so.7.0.0另一个链接

符号链接的原因是在多个版本的情况下选择认版本进行链接,请记住库的名称已被集成到二进制文件中。 (你可以看到ldd)。

是-L库目录被覆盖,并没有看在/ usr / lib?

链接它,你需要.a文件,而不是.so文件,这是运行时库。 共享对象仅对已经链接到库的非共享部分的程序有用。 这通常分布在“.a”文件中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐