MATLAB - 从 jpeg_write.c 创建 maxmaci64 时出错
MATLAB - Error creating maxmaci64 from jpeg_write.c
我在使用来自 jpeg 工具箱的 jpeg_read.c 和 jpeg_write.c 的 Mex 制作 mexmaci64 文件时遇到了问题。我问了我的问题 ,jpeg_read 的问题解决了。
但是当我编译 jpeg_write.c 时我仍然有不同的错误。
一切都是一样的,我没有改变任何路径或任何东西。
我不明白为什么 Matlab console returns 这个错误。
这对任何人来说都很熟悉吗?请告诉我。
>> mex -compatibleArrayDims -I/usr/local/Cellar/jpeg/9d/include jpeg_write.c -L/usr/local/Cellar/jpeg/9d/lib -ljpeg
Building with 'Xcode with Clang'.
Error using mex
/Users/folder/jpeg_toolbox/jpeg_write.c:56:10: fatal error: 'jpegint.h' file not found
#include <jpegint.h>
^~~~~~~~~~~
1 error generated.
首发:
通过指向 jpeg
或其他库的 /usr/local/Cellar/jpeg/<version>/include
位置,您依赖于当前安装的特定版本。您可能想改用 /usr/local/opt/jpeg/include/
等。 /usr/local/opt
是 Homebrew 公开其已安装包内容的非版本化展示的地方。
所以:
mex -compatibleArrayDims -I/usr/local/Cellar/jpeg/9d/include ...
这是指向 jpeg
库。 jpeg
图书馆是否提供 jpegint.h
?
$ ls /usr/local/Cellar/jpeg/9d/include/
jconfig.h jerror.h jmorecfg.h jpeglib.h
没有。这就是为什么找不到它的原因。所以你必须弄清楚你实际上可以从哪里得到 jpegint.h
。点击 Google 并查阅您的文档以找出您实际尝试从中提取 jpegint.h
的库,并使用适当的 -I
、-L
将其提取出来, 和 -l
标志。
如果您认为您已经安装了它,您可以使用find /usr/local/Cellar -name jpegint.h
来查找它。我在 gdcm
包中找到它。
[~] $ find /usr/local/Cellar -name jpegint.h
/usr/local/Cellar/gdcm/3.0.8_1/include/gdcm-3.0/gdcmjpeg/jpegint.h
所以你可能想要这样的东西:
mex -compatibleArrayDims -I/usr/local/opt/jpeg/include ...
-I/usr/local/opt/gdcm/include/gdcm-3.0/gdcmjpeg ...
jpeg_write.c ...
-L/usr/local/opt/jpeg/lib -L/usr/local/opt/gdcm/lib ...
-ljpeg -lgdcmjpeg16
(我不知道你是否真的想要 -lgdcmjpeg8
、-lgdcmjpeg12
或 -lgdcmjpeg16
,或者其他东西。我只是在这里猜测。请参阅 GDCM 文档.)
我在使用来自 jpeg 工具箱的 jpeg_read.c 和 jpeg_write.c 的 Mex 制作 mexmaci64 文件时遇到了问题。我问了我的问题
>> mex -compatibleArrayDims -I/usr/local/Cellar/jpeg/9d/include jpeg_write.c -L/usr/local/Cellar/jpeg/9d/lib -ljpeg
Building with 'Xcode with Clang'.
Error using mex
/Users/folder/jpeg_toolbox/jpeg_write.c:56:10: fatal error: 'jpegint.h' file not found
#include <jpegint.h>
^~~~~~~~~~~
1 error generated.
首发:
通过指向 jpeg
或其他库的 /usr/local/Cellar/jpeg/<version>/include
位置,您依赖于当前安装的特定版本。您可能想改用 /usr/local/opt/jpeg/include/
等。 /usr/local/opt
是 Homebrew 公开其已安装包内容的非版本化展示的地方。
所以:
mex -compatibleArrayDims -I/usr/local/Cellar/jpeg/9d/include ...
这是指向 jpeg
库。 jpeg
图书馆是否提供 jpegint.h
?
$ ls /usr/local/Cellar/jpeg/9d/include/
jconfig.h jerror.h jmorecfg.h jpeglib.h
没有。这就是为什么找不到它的原因。所以你必须弄清楚你实际上可以从哪里得到 jpegint.h
。点击 Google 并查阅您的文档以找出您实际尝试从中提取 jpegint.h
的库,并使用适当的 -I
、-L
将其提取出来, 和 -l
标志。
如果您认为您已经安装了它,您可以使用find /usr/local/Cellar -name jpegint.h
来查找它。我在 gdcm
包中找到它。
[~] $ find /usr/local/Cellar -name jpegint.h
/usr/local/Cellar/gdcm/3.0.8_1/include/gdcm-3.0/gdcmjpeg/jpegint.h
所以你可能想要这样的东西:
mex -compatibleArrayDims -I/usr/local/opt/jpeg/include ...
-I/usr/local/opt/gdcm/include/gdcm-3.0/gdcmjpeg ...
jpeg_write.c ...
-L/usr/local/opt/jpeg/lib -L/usr/local/opt/gdcm/lib ...
-ljpeg -lgdcmjpeg16
(我不知道你是否真的想要 -lgdcmjpeg8
、-lgdcmjpeg12
或 -lgdcmjpeg16
,或者其他东西。我只是在这里猜测。请参阅 GDCM 文档.)