【发布时间】:2010-02-23 22:23:05
【问题描述】:
我正在尝试为 freebsd 构建一个应用程序,该应用程序链接到在 linux 上构建的共享对象“share.so”。我在 /usr/compat/linux/lib 下也有 freebsd linux 兼容库。我能够编译我的应用程序。但是在链接到“share.so”时,我遇到了一堆错误,因为 share.so(基于 linux 构建)需要访问“/usr/compat/linux/lib”下的库。有没有办法告诉 share.so 查看兼容的 linux 目录而不是 /usr/lib/
/usr/bin/ld: warning: libstdc++.so.6, needed by sharedlib.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libm.so.6, needed by sharedlib.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libgcc_s.so.1, needed by sharedlib.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libpthread.so.0, needed by sharedlib.so, not found (try using -rpath or -rpath-link)
这些是我收到的警告。这些版本在 compat/linux/lib 中可用,因为 /usr/lib 包含较低版本。这里sharedlib.so是linux上生成的.so文件
【问题讨论】:
-
请发布您的链接器命令(Makefile?)和任何相关错误
-
嗨 Sam,我用收到的警告更新了我的问题。我们实际上可以访问 sharedlib 的源代码,因此我们正在为 freebsd 编译它。但是我仍然想知道您是否对如何解决此问题有任何想法。对于链接,我只是给出了 sharedlib -L /path/to/sharedlib 的路径。我也尝试将 -L/usr/compat/linux/usr/lib 添加到命令中,但它不起作用
标签: linux linker shared-libraries freebsd linker-errors