相关文章推荐
博学的警车  ·  <mutex> | Microsoft ...·  1 年前    · 
帅呆的柠檬  ·  如何让.net standard ...·  1 年前    · 
调皮的丝瓜  ·  wpf begininvoke async-掘金·  1 年前    · 

最近一段时间,因为加载调用各种本地库,在LINUX/MAC上专门研究了rpath问题。最初是想使用全路径方式,这样也能正确执行,有两个缺点:


路径太长,不好维护。

安装路径如果变化,就错了。

改进办法是什么?就是使用相对路径,这样搜索加载时基于安装目录下的相对路径,就避免了上述问题。那么相对路径是相对于谁?开始以为,位于同一个目录下的库文件,rpath使用.(当前目录)。结果报错说找不到。后来经过实验,结论是:


rpath搜索相对路径时,是从当前执行文件开始。


举例来说:安装目录是APP_HOME;安装目录下有一个Office执行文件和ffmpeg目录;ffmpeg目录下有a.so/b.so,有依赖关系。rpath怎样设置,才能得到正确结果?


执行文件在APP_HOME,a/b的rpath应该都是./ffmpeg。

执行文件在APP_HOME/bin,a/b的rpath应该都是../ffmpeg(即先返回上一级目录,再到ffmpeg)。

GNU 项目之父:苹果把 Mac 变“监狱”|Ubuntu 并非免费 GNU/Linux 发行版不建议用
GNU 项目之父:苹果把 Mac 变“监狱”|Ubuntu 并非免费 GNU/Linux 发行版不建议用
CrossOver2022中文版本linux和Mac 系统兼容window
CrossOver由codewaver公司开发的类虚拟机软件,目的是使linux和Mac OS X操作系统和window系统兼容。
CrossOver2022双系统Linux/MAC虚拟机软件
通过CrossOver安装windows软件像运行原生应用一样,无论是Mac还是linux系统,都可以直接运行使用,非常方便快捷。