Compile jpeg_read.c as mexmaci64 for MATLAB

*爱你&永不变心* 提交于 2019-12-24 00:18:22

问题


I downloaded the jpeg_toolbox for MATLAB from this site, then downloaded the JPEG compiler tools from here. I followed the instruction to configure the whole for Mac (UNIX*).

Now, I would need to compile the jpeg_read.c and jpeg_write.c contained into the first link for MATLAB, because the toolbox does not provide the mexmaci64 files. However when I try to:

mex jpeg_read.c

MATLAB returns the following error:

Error using mex
Undefined symbols for architecture x86_64:
  "_jpeg_CreateDecompress", referenced from:
      _mexFunction in jpeg_read.o
  "_jpeg_destroy_decompress", referenced from:
      _mexFunction in jpeg_read.o
  "_jpeg_finish_decompress", referenced from:
      _mexFunction in jpeg_read.o
  "_jpeg_read_coefficients", referenced from:
      _mexFunction in jpeg_read.o
  "_jpeg_read_header", referenced from:
      _mexFunction in jpeg_read.o
  "_jpeg_save_markers", referenced from:
      _mexFunction in jpeg_read.o
  "_jpeg_std_error", referenced from:
      _mexFunction in jpeg_read.o
  "_jpeg_stdio_src", referenced from:
      _mexFunction in jpeg_read.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

How can I compile the program? Otherwise, does any of you have already got the mexmaci64 I would need?


回答1:


I solved this way:

brew install libjpeg

I found the libraries in /usr/local/lib so on MATLAB I moved into the folder that contained the .c files that had to be compiled and I ran:

mex jpeg_read.c "/usr/local/lib/libjpeg.a"
mex jpeg_write.c "/usr/local/lib/libjpeg.a"


来源:https://stackoverflow.com/questions/48966048/compile-jpeg-read-c-as-mexmaci64-for-matlab

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!