Multiple include paths in mex

I have a source file with headers in multiple directories that I'm compiling.
mex -v -IC:\working\tempInclude1 -IC:\working\tempInclude2 mexTest.cpp
returns
arguments = -IC:\working\tempInclude1 -IC:\working\tempInclude2
and works fine. But if I try to use the syntax below,
srcFile = 'mexTest.cpp';
ipath = ['-I' fullfile(pwd,'tempInclude1') ' -I' fullfile(pwd,'tempInclude2')];
mex('-v',ipath,srcFile)
it returns
arguments = -I"C:\working\tempInclude1 -IC:\working\tempInclude2"
and that double quote causes the command to fail. Any ideas? When I look at ipath, there is no quote in it.

 Accepted Answer

You need to use two different variables or a cell array of paths:
path1 = ['-I' fullfile(pwd,'tempInclude1')];
path2 = ['-I' fullfile(pwd,'tempInclude2')];
mex('-v',path1,path2,srcFile)
or
ipaths = {['-I' fullfile(pwd,'tempInclude1')], ['-I' fullfile(pwd,'tempInclude2')];}
mex('-v',ipaths{:}, srcFile)
I suggest reading up on how command mode differs from function calling mode. matlab command syntax vs function syntax

More Answers (0)

Categories

Tags

Community Treasure Hunt

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

Start Hunting!