mex unable to find an include file

9 views (last 30 days)
Theo
Theo on 26 Jul 2015
Commented: Theo on 26 Jul 2015
I'm trying to use mex to compile a file, but it does not seem to be able to find an include file. I am using the test file yprime.c found in matlabapplicationfolder/extern/examples/ folder. The code compiles fine when I type
mex yprime.c
However, I now change the first few lines of the code to include a mpfr include file:
#include <math.h>
#include <mpfr.h>
#include "mex.h"
and I try:
mex 'yprime.c' '-I/usr/local/include/ -L/usr/local/lib/ -lmpfr'
It gives me the error
Error using mex
/Users/username/prog/yprime.c:17:10: fatal error: 'mpfr.h' file not found
#include <mpfr.h>
^
1 error generated.
I indeed have:
/usr/local/include/mpfr.h
/usr/local/lib/libmpfr.4.dylib
/usr/local/lib/libmpfr.a
/usr/local/lib/libmpfr.dylib
/usr/local/lib/libmpfr.la
The permissions on all of these are set to 755. I am running OSX 10.10.4. mex -setup returns:
MEX configured to use 'Xcode with Clang' for C language compilation.
  2 Comments
Walter Roberson
Walter Roberson on 26 Jul 2015
Perhaps try
mex yprime.c -I/usr/local/include/ -L/usr/local/lib/ -lmpfr
Theo
Theo on 26 Jul 2015
It does work! Can you comment as an answer? Also, the reason why I tried the quotation marks was because I was told to do as follows:
mex('yprime.c', '-I/usr/local/include/ -L/usr/local/lib/ -lmpfr')
which is useful if the filenames are specified as Matlab strings in variables. However this syntax does not work! I've tried all the combinations I can think of to call with mex(). How would you call the mex function with variable input?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 26 Jul 2015
Perhaps try
mex yprime.c -I/usr/local/include/ -L/usr/local/lib/ -lmpfr
As a function call this would be
mex('yprime.c', '-I/usr/local/include/', '-L/usr/local/lib/', '-lmpfr')

More Answers (0)

Categories

Find more on Write C Functions Callable from MATLAB (MEX Files) in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!