将jpeg_read.c编译为mexmaci64 for MATLAB

时间:2018-02-24 18:10:27

标签: macos matlab compilation mex

我从this site下载了用于MATLAB的jpeg_toolbox,然后从here下载了JPEG编译器工具。我按照说明为Mac配置了整个(UNIX *)。

现在,我需要编译包含在MATLAB的第一个链接中的jpeg_read.cjpeg_write.c,因为工具箱不提供mexmaci64文件。但是,当我尝试:

mex jpeg_read.c

MATLAB返回以下错误:

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)

如何编译程序?否则,你们中的任何人都已经得到了我需要的mexmaci64吗?

1 个答案:

答案 0 :(得分:1)

我这样解决了:

brew install libjpeg

我在/usr/local/lib找到了库,所以在MATLAB上我移动到包含必须编译的.c文件的文件夹中,我跑了:

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