问题
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