Linux下编译FileZilla后二进制文件找不到libwx_gtk3u_html-3.2.so.0且无需LD_LIBRARY_PATH运行的问题求助
Linux下编译FileZilla后二进制文件找不到libwx_gtk3u_html-3.2.so.0且无需LD_LIBRARY_PATH运行的问题求助
我现在在Linux上编译FileZilla,想让编译好的二进制文件不用手动设置LD_LIBRARY_PATH这种临时hack手段,就能直接正常运行。目前我的目录结构如下:
FileZilla3 ├── bin │ ├── filezilla │ ├── fzputtygen │ ├── fzsftp │ └── fzstorj └── lib ├── libfilezilla.so.45 ├── libfzclient-commonui-private-3.67.1.so ├── libfzclient-private-3.67.1.so ├── libgmp.so.10 ├── libgnutls.so.30 ├── libhogweed.so.6 ├── libnettle.so.8 ├── libsqlite3.so.0 ├── libwx_baseu-3.2.so.0 ├── libwx_baseu_xml-3.2.so.0 ├── libwx_gtk3u_aui-3.2.so.0 ├── libwx_gtk3u_core-3.2.so.0 ├── libwx_gtk3u_html-3.2.so.0 └── libwx_gtk3u_xrc-3.2.so.0
我一直在通过eu-readelf -d filezilla的输出,把二进制依赖的共享库逐个放到lib目录里,这个命令的部分输出如下:
$ eu-readelf -d filezilla Dynamic segment contains 47 entries: Addr: 0x00000000004ed2d0 Offset: 0x4ec2d0 Link to section: [36] '.dynstr' Type Value NEEDED Shared library: [lib...
可现在的问题是,哪怕我把NEEDED列表里的所有库都放到了同级的lib目录里,运行bin/filezilla时还是会提示找不到像libwx_gtk3u_html-3.2.so.0这类明明已经存在的依赖库。我不想每次运行都要先手动设置LD_LIBRARY_PATH,有没有什么靠谱的方法能让二进制文件默认就去同级的lib目录查找依赖呢?
备注:内容来源于stack exchange,提问作者Jez
相关产品推荐
相关产品推荐

