1

如何在 Lua 中正确加载 libpng?我在 Mac OSX 10.10.3 的 iTorch Notebook 中运行 Lua/Torch,Lua 中的其他基本功能在此工作,例如绘图和计算。

 brew install libpng

警告:已经安装了 libpng-1.6.17

如果我运行:

require 'nn';
require 'image';
itorch.image(image.lena())

从文件'/usr/local/lib/lua/5.1/libpng.so'加载模块'libpng'时出错:dlopen(/usr/local/lib/lua/5.1/libpng.so,6):未加载库:/ usr/local/lib/libpng15.15.dylib 引用自:/usr/local/lib/lua/5.1/libpng.so 原因:库版本不兼容:libpng.so 需要33.0.0 或更高版本,但libpng15.15。 dylib 提供版本 29.0.0 警告:无法加载(是否已安装?) /usr/local/share/lua/5.1/dok/inline.lua:736: libpng 包未找到,请安装 libpng 堆栈回溯:[C ]:在函数“错误”/usr/local/share/lua/5.1/dok/inline.lua:736 中:在函数“错误”/usr/local/share/lua/5.1/image/init.lua:142 中:在函数“保存器”/usr/local/share/lua/5.1/image/init.lua:355 中:在函数“保存”中/Users/MY/torch/install/share/lua/5.1/itorch/gfx.lua:25: 在函数 'f' [string "local f = function() return itorch.image(iii)..."]: 1:在主块中 [C]:在功能“xpcall”/Users/MY/torch/install/share/lua/5.1/itorch/main.lua:177:在功能/Users/MY/torch/install/share/ lua/5.1/lzmq/poller.lua:75: 在函数'poll'/Users/MY/torch/install/share/lua/5.1/lzmq/impl/loop.lua:307: 在函数'poll'/Users/ MY/torch/install/share/lua/5.1/lzmq/impl/loop.lua:325:在函数'sleep_ex'/Users/MY/torch/install/share/lua/5.1/lzmq/impl/loop.lua中: 370:在函数“开始”/Users/MY/torch/install/share/lua/5.1/itorch/main.lua:344:在主块[C]中:在函数“需要”[字符串“arg = {”/用户/我/。ipython/profile_default/secu..."]:1: 在主块中

4

2 回答 2

3

我有一个类似的问题(OSX 10.9.5)。您可能安装了多个版本的 libpng,在安装 luarocks 时调用的版本具有 i386 架构(需要 x86_64)。

要解决这个问题:

  1. 尝试再次安装映像,并阅读日志:

    luarocks 安装镜像

  2. 检查日志以查看是否收到以下类型的消息:

    ld:警告:忽略文件 /Library/Frameworks//libpng.framework/libpng,文件 /Library/Frameworks//libpng.framework/libpng 中缺少所需的架构 x86_64(2 片)

  3. 如果是这种情况(假设使用 brew)删除 /Library/Frameworks 中的 libpng 框架并执行

    brew install libpng --universal

  4. 重新安装映像并运行。

这对我有用,我希望它也对你有用。

于 2015-06-03T13:06:13.423 回答
1

重新安装图像包以及强制链接 libpng 可能会修复它:

brew link libpng --force
luarocks install image
于 2015-06-01T20:48:17.250 回答