Linux FreeBSD共享对象问题

Linux FreeBSD共享对象问题

问题描述:

我正在尝试构建一个freebsd应用程序,该应用程序链接到建立在linux上的共享对象“share.so”。我在/ usr/compat/linux/lib下也有freebsd linux兼容库。我能够编译我的应用程序。但是,当链接到“share.so”时,由于share.so(建立在linux上)需要访问“/ usr/compat/linux/lib下的库”,所以我收到了一堆错误。有没有办法告诉share.so寻找到COMPAT linux目录下,而不是在/ usr/lib中/Linux FreeBSD共享对象问题

/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文件。

+0

请发布您的链接器命令(Makefile?)和任何相关的错误 – 2010-02-24 05:32:59

+0

嗨,山姆,我更新了我的问题,我得到的警告。我们实际上可以访问sharedlib的源代码,所以我们正在为freebsd编译它。但我仍然想知道你是否对如何解决这个问题有任何想法。为了链接,我只是给了sharedlib -L ​​/ path/to/sharedlib的路径。我也尝试将-L/usr/compat/linux/usr/lib添加到命令中,但它没有工作 – Kamal 2010-02-26 03:28:01

您需要修改loader configuration以告诉它在该目录中查找库。