使用convert的库兼容性问题

时间:2012-12-23 02:01:21

标签: c dynamic-linking dynamic-loading imagemagick-convert

从命令行运行convert以将少量JPG文件合并为PDF时,我遇到了段错误:

$ convert ./file_*.jpg  p.pdf
Segmentation fault

在那里,你看到了吗?为了追踪正在发生的事情,我在调试器下运行它,我得到了以下内容:

(gdb) run ./file_*.jpg  p.pdf
Starting program: /usr/local/bin/convert ./file_*.jpg  p.pdf
warning: .dynamic section for "/usr/lib/libfreetype.so.6" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
warning: .dynamic section for "/usr/lib/libpng12.so.0" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
warning: .dynamic section for "/usr/lib/libfontconfig.so.1" is not at the expected address

谁能告诉我这意味着什么?看起来好像存在库不兼容,但我不确定我能做些什么或者我能做些什么。

如果我的标签错误,请道歉 - 如果您能想到更合适的标签,请随时更改。我从源代码配置并制作了转换应用程序,所以我想我并不是真的期待这个。

1 个答案:

答案 0 :(得分:1)

似乎是prelink的问题Prelink尝试通过帮助动态链接器来加快上传时间。有关其功能的详细信息,请参阅man prelink。您可以使用以下命令取消预先链接可执行文件。

prelink --undo /path/to/executable

这应该将可执行文件恢复为正常的动态链接。