如何在 OSX 上将 libjpeg 8 安装到 /opt/local?我问的原因是我想使用 MNE-C 库制作大脑活动的小电影。
我执行了“mne_make_movie”,导致以下错误:
已选择电影制作(根据数据)...扫描 /Users/user/mne/MNE-2.7.4-3420-MacOSX-x86_64/lib 找到插件 lqt_mjpeg.so...从模块获取编解码器信息尝试加载 /用户/用户/mne/MNE-2.7.4-3420-MacOSX-x86_64/lib/lqt_mjpeg.so... dlopen 失败 /Users/user/mne/MNE-2.7.4-3420-MacOSX-x86_64/lib/lqt_mjpeg.so: dlopen(/Users/user/mne/MNE-2.7.4-3420-MacOSX-x86_64/lib/lqt_mjpeg.so, 2):未加载库:/opt/local/lib/libjpeg.8.dylib 引用 来自:/Users/user/mne/MNE-2.7.4-3420-MacOSX-x86_64/lib/lqt_mjpeg.so
原因:找不到图像错误:lqt_find_video_codec 找不到 编解码器!
由于所有内容都已编译,我认为我无法更改“mne_make_movie”查找 libjpeg 的位置。所以我尝试使用 Mac Ports 安装 libjpeg,但它只有 libjpeg-turbo 可用。但是,然后我收到另一个错误:
已选择电影制作(根据数据)...扫描 /Users/user/mne/MNE-2.7.4-3420-MacOSX-x86_64/lib 找到插件 lqt_mjpeg.so...从模块获取编解码器信息尝试加载 /用户/用户/mne/MNE-2.7.4-3420-MacOSX-x86_64/lib/lqt_mjpeg.so... dlopen 失败 /Users/user/mne/MNE-2.7.4-3420-MacOSX-x86_64/lib/lqt_mjpeg.so: dlopen(/Users/user/mne/MNE-2.7.4-3420-MacOSX-x86_64/lib/lqt_mjpeg.so, 2):未加载库:/opt/local/lib/libjpeg.8.dylib 引用 来自:/Users/user/mne/MNE-2.7.4-3420-MacOSX-x86_64/lib/lqt_mjpeg.so
原因:库版本不兼容:lqt_mjpeg.so需要版本 13.0.0 或更高版本,但 libjpeg.8.dylib 提供版本 10.0.0 错误:lqt_find_video_codec 找不到编解码器!
Mac Ports 上似乎没有更新的版本。
在 libjpeg 的官方网站上,我下载了版本 8d 的源代码并按照安装说明进行操作。这会将所有内容安装到 /usr/local。我不熟悉 makefile,也不知道必须更改什么才能将所有内容正确安装到 /opt/local。
那么如何将 libjpeg 8 版本 13.0.0 或更高版本安装到 /opt/local ?
P.S.:Homebrew 似乎不适用,因为它没有安装到 /opt/local(并且不建议将其更改为 /opt/local),并且 libjpeg 9 似乎是唯一可用的版本。
如果您不经常使用命令行构建工具,或者您最近升级了 macOS,则在开始之前您可能需要下载 Xcode 命令行工具。如果您已经拥有它们,它不会造成任何伤害。命令是:
xcode-select --install
然后以下应该可以工作,尽管我还没有测试它,所以你可能想一次复制一行并将其粘贴到你的终端中:
curl -O -J -L http://www.ijg.org/files/jpegsrc.v8.tar.gz
tar xvfz jpeg*tar.gz # Unzip and untar what you downloaded
cd jpeg-8 # Change directory to wherever it unpacked to
./configure --prefix="/opt/local" # Configure with the necessary prefix
make
make install
您可能需要在最后一行前面加上
sudo
。