R包magick安装的坑
由于时效问题,该文某些代码、技术可能已经过期,请注意!!!本文最后更新于:2 年前
Magick
安装magick遇到的问题记录一下,毕竟花了好多时间。
问题1:
1 |
|
解决方法:按照对应的系统安装 ImageMagick
这个问题好解决,但是事情往往没这么简单。
终极问题:
1 |
|
就这个问题网上找了好多办法都没解决,也可能是之前自己搜的关键词不对,最开始检索的错误信息(Error: package or namespace load failed for ‘magick’ in dyn.load(file, DLLpath = DLLpath, …)),挖了半天一直试错。最后通过检索(magick.so: undefined symbol: _ZN6Magick5Image5wri)找到了解决方法。
解决方法(如果没有该目录请提前创建):
1 |
|
这个方法还是在github上的一个issue上看到的,按方法中所说应该是g++版本的问题,更改编译的g++即可。
地址如下:
https://github.com/ropensci/magick/issues/300
最后的安装命令(下载的源码进行安装的,应该也可以直接安装不用提前下载源码)
1 |
|
其他错误:usr/bin/ld: cannot find 错误解决方法
通常在软件编译时出现的usr/bin/ld: cannot find -lxxx的错误,主要的原因是库文件并没有导入的ld检索目录中。
其中xxx即表示函式库文件名称,如上例的:libc.so、libltdl.so、libXtst.so。
其命名规则是:lib+库名(即xxx)+.so。
会发生这样的原因有以下三种情形:
1 系统没有安装相对应的lib
2 相对应的lib版本不对
3 lib(.so档)的symbolic link 不正确,没有连结到正确的函式库文件(.so)
解决方式:
1。确认库文件是否存在,比如-l123, 在/usr/lib, /usr/local/lib,或者其他自定义的lib下有无lib123.so, 如果只是存在lib123.so.1,
那么可以通过ln -sv lib123.so.1 lib123.so,建立一个连接重建lib123.so.
2。检查/etc/ld.so.conf中的库文件路径是否正确,如果库文件不是使用系统路径,/usr/lib, /usr/local/lib, 那么必须在文件中加入。
3。ldconfig 重建ld.so.cache文件,ld的库文件检索目录存放文件。尤其刚刚编译安装的软件,必须运行ldconfig,才能将新安装的库文件导入ld.so.cache
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!