MATLAB-从jpeg_write.c创建maxmaci64时出错

MATLAB-从jpeg_write.c创建maxmaci64时出错,matlab,compilation,macos-catalina,mex,libjpeg,Matlab,Compilation,Macos Catalina,Mex,Libjpeg,我在使用jpeg工具箱中的jpeg_read.c和jpeg_write.c中的Mex生成mexmaci64文件时遇到问题。我问了我的问题,jpeg_read的问题就解决了。 但在编译jpeg_write.c时,我仍然有一个不同的错误。 一切都是一样的,我没有改变任何道路或任何事情。 我不明白为什么Matlab控制台会返回这个错误。 有人熟悉这个吗?请让我知道 >mex-兼容RAYDIMS-I/usr/local/cillar/jpeg/9d/包括jpeg\u write.c-L/usr/loca

我在使用jpeg工具箱中的jpeg_read.c和jpeg_write.c中的Mex生成mexmaci64文件时遇到问题。我问了我的问题,jpeg_read的问题就解决了。 但在编译jpeg_write.c时,我仍然有一个不同的错误。 一切都是一样的,我没有改变任何道路或任何事情。 我不明白为什么Matlab控制台会返回这个错误。 有人熟悉这个吗?请让我知道

>mex-兼容RAYDIMS-I/usr/local/cillar/jpeg/9d/包括jpeg\u write.c-L/usr/local/cillar/jpeg/9d/lib-ljpeg
使用“带叮当声的Xcode”构建。
使用mex时出错
/Users/folder/jpeg_toolbox/jpeg_write.c:56:10:致命错误:“找不到jpegint.h”文件
#包括
^~~~~~~~~~~
生成1个错误。
首先:

通过指向
jpeg
或其他库的
/usr/local/ceral/jpeg//include
位置,您取决于当前安装的特定版本。您可能希望使用
/usr/local/opt/jpeg/include/
/usr/local/opt
是Homebrew公开其已安装软件包内容的非版本演示文稿的地方

因此:

这是指向
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/cillar-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
或其他库的
/usr/local/ceral/jpeg//include
位置,您取决于当前安装的特定版本。您可能希望使用
/usr/local/opt/jpeg/include/
/usr/local/opt
是Homebrew公开其已安装软件包内容的非版本演示文稿的地方

因此:

这是指向
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/cillar-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文档。)

您的系统中是否有“jpegint.h”文件?它是你下载的软件包的一部分吗?不,我搜索了文件名,但它在任何地方都不存在。我不知道我应该安装什么库来保存该文件。您的系统中是否有“jpegint.h”文件?它是你下载的软件包的一部分吗?不,我搜索了文件名,但它在任何地方都不存在。我不知道我应该安装什么库来保存那个文件。谢谢你的回复。我搜索了文件名,但找不到它。我是否应该安装gdcm包以获得它?或者还有其他软件包?所以我安装了gdcm软件包,并从中使用了jpegint.h。然后我尝试了mex,它工作了,但显示了一个警告。我不在乎。现在,当我运行我的项目时,Matlab向我显示了一个与我在这里提到的jpeg_write相关的错误。安德鲁,你能帮我一下吗?谢谢你的回复,安德鲁。我搜索了文件名,但找不到它。我是否应该安装gdcm包以获得它?或者还有其他软件包?所以我安装了gdcm软件包,并从中使用了jpegint.h。然后我尝试了mex,它工作了,但显示了一个警告。我不在乎。现在,当我运行我的项目时,Matlab向我显示了一个与我在这里提到的jpeg_write相关的错误。安德鲁,你能帮我一下吗?我会很感激的。