[Ipopt] help building Matlab interface for Ipopt on Mac
Thomas Vacek
vacek008 at umn.edu
Tue Oct 4 14:43:15 EDT 2011
See comments below.
/Applications/-math/MATLAB_R2011b.app//bin/mex -v -cxx -O CC="g++-4.0"
CXX="g++-4.0" LD="g++-4.0" COPTIMFLAGS="-fno-common -no-cpp-precomp
-fexceptions -arch x86_64 -m64 -DIPOPT_BUILD -DMATLAB_MEXFILE "
CXXOPTIMFLAGS="-fno-common -no-cpp-precomp -fexceptions -arch x86_64
-m64 -DIPOPT_BUILD -DMATLAB_MEXFILE " LDOPTIMFLAGS="-fno-common
-no-cpp-precomp -fexceptions -arch x86_64 -m64 -DIPOPT_BUILD
-DMATLAB_MEXFILE "
This part looks good to me, but I think the part that follows should be
wrapped in a LDFLAGS="..." block, like this:
LDFLAGS="-L/Users/ray/build/Ipopt-3.10.1/build/lib -lipopt
-L/Users/ray/build/Ipopt-3.10.1/build/lib -lcoinmumps -lpthread
-framework vecLib -L/usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64
-L/usr/lib/i686-apple-darwin10/4.2.1
-L/usr/lib/gcc/i686-apple-darwin10/4.2.1
-L/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../i686-apple-darwin10/4.2.1
-L/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../.. -lgfortranbegin
-lgfortran -lSystem -L/Users/ray/build/Ipopt-3.10.1/build/lib
-lcoinmetis -framework vecLib -framework vecLib -framework vecLib -lm
-ldl"
And then the remainder looks fine to me:
-output ipopt.mexmaci64 matlabexception.o matlabfunctionhandle.o
matlabjournal.o iterate.o ipoptoptions.o options.o sparsematrix.o
callbackfunctions.o matlabinfo.o matlabprogram.o ipopt.o
The "-framework vecLib" statement appears multiple times because the
library dependencies are generated automatically by pkgconfig, and may
contain repetitions. I hope something I said is helpful!
Tom
On 10/04/2011 11:39 AM, Ray Zimmerman wrote:
> I tried again with Matlab R2010a with the same result. Any ideas? Anyone?
>
> Thanks in advance,
>
> --
> Ray Zimmerman
> Senior Research Associate
> 419A Warren Hall, Cornell University, Ithaca, NY 14853
> phone: (607) 255-9645
>
>
>
>
> On Sep 30, 2011, at 3:08 PM, Ray Zimmerman wrote:
>
>> I've finally gotten back to trying to build Ipopt and the Matlab
>> interface on my Mac. I've been able to build Ipopt successfully, but
>> I'm having trouble with the MEX build. Here is my setup ...
>>
>> OS X 10.6.8 Snow Leopard
>> Ipopt-3.10.1
>> gcc -v : gcc version 4.2.1 (Apple Inc. build 5666) (dot 3)
>> gfortran -v : gcc version 4.2.1 (Apple Inc. build 5664)
>> (from http://r.research.att.com/tools/)
>> Matlab R2011b (7.13)
>>
>> Using ...
>>
>> ../configure --with-blas="-framework vecLib" \
>> --with-lapack="-framework vecLib" F77=gfortran \
>> FFLAGS="-fexceptions -m64 -fbackslash" \
>> CFLAGS="-fno-common -no-cpp-precomp -arch x86_64 -m64" \
>> CXXFLAGS="-fno-common -no-cpp-precomp -fexceptions -arch x86_64
>> -m64" \
>> -disable-shared CC=gcc-4.0 CXX=g++-4.0
>>
>> I added the following line to ~/.matlab/R2011b/mexopts.sh (from a Mar
>> 9, 2010 posting by Peter)
>> LDFLAGS="$LDFLAGS -framework vecLib"
>>
>> In Ipopt-3.10.1/build/Ipopt/contrib/MatlabInterface/src/Makefile
>> MATLAB_HOME = /Applications/-math/MATLAB_R2011b.app/
>> MEXSUFFIX = mexmaci64
>>
>>
>> When I run 'make' for the MatlabInterface, I get the following:
>>
>> $ make
>> /Applications/-math/MATLAB_R2011b.app//bin/mex -v -cxx -O
>> CC="g++-4.0" CXX="g++-4.0" LD="g++-4.0" COPTIMFLAGS="-fno-common
>> -no-cpp-precomp -fexceptions -arch x86_64 -m64 -DIPOPT_BUILD
>> -DMATLAB_MEXFILE " CXXOPTIMFLAGS="-fno-common -no-cpp-precomp
>> -fexceptions -arch x86_64 -m64 -DIPOPT_BUILD -DMATLAB_MEXFILE "
>> LDOPTIMFLAGS="-fno-common -no-cpp-precomp -fexceptions -arch x86_64
>> -m64 -DIPOPT_BUILD -DMATLAB_MEXFILE "
>> -L/Users/ray/build/Ipopt-3.10.1/build/lib -lipopt
>> -L/Users/ray/build/Ipopt-3.10.1/build/lib -lcoinmumps -lpthread
>> -framework vecLib -L/usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64
>> -L/usr/lib/i686-apple-darwin10/4.2.1
>> -L/usr/lib/gcc/i686-apple-darwin10/4.2.1
>> -L/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../i686-apple-darwin10/4.2.1
>> -L/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../.. -lgfortranbegin
>> -lgfortran -lSystem -L/Users/ray/build/Ipopt-3.10.1/build/lib
>> -lcoinmetis -framework vecLib -framework vecLib -framework vecLib
>> -lm -ldl -output ipopt.mexmaci64 matlabexception.o
>> matlabfunctionhandle.o matlabjournal.o iterate.o ipoptoptions.o
>> options.o sparsematrix.o callbackfunctions.o matlabinfo.o
>> matlabprogram.o ipopt.o
>> -> mexopts.sh sourced from directory (DIR = $PREF_DIR)
>> FILE = /Users/ray/.matlab/R2011b/mexopts.sh
>> ----------------------------------------------------------------
>> -> MATLAB = /Applications/-math/MATLAB_R2011b.app
>> -> CC = g++-4.0
>> -> CC flags:
>> CFLAGS = -fno-common -no-cpp-precomp -arch
>> x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk
>> -mmacosx-version-min=10.5 -fexceptions
>> CDEBUGFLAGS = -g
>> COPTIMFLAGS = -fno-common -no-cpp-precomp
>> -fexceptions -arch x86_64 -m64 -DIPOPT_BUILD -DMATLAB_MEXFILE
>> CLIBS =
>> -L/Applications/-math/MATLAB_R2011b.app/bin/maci64 -lmx -lmex -lmat
>> -lstdc++
>> arguments = -DMX_COMPAT_32
>> -> CXX = g++-4.0
>> -> CXX flags:
>> CXXFLAGS = -fno-common -no-cpp-precomp
>> -fexceptions -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk
>> -mmacosx-version-min=10.5
>> CXXDEBUGFLAGS = -g
>> CXXOPTIMFLAGS = -fno-common -no-cpp-precomp
>> -fexceptions -arch x86_64 -m64 -DIPOPT_BUILD -DMATLAB_MEXFILE
>> CXXLIBS =
>> -L/Applications/-math/MATLAB_R2011b.app/bin/maci64 -lmx -lmex -lmat
>> -lstdc++
>> arguments = -DMX_COMPAT_32
>> -> FC = gfortran
>> -> FC flags:
>> FFLAGS = -fexceptions -m64 -fbackslash
>> FDEBUGFLAGS = -g
>> FOPTIMFLAGS = -O
>> FLIBS =
>> -L/Applications/-math/MATLAB_R2011b.app/bin/maci64 -lmx -lmex -lmat
>> -L -lgfortran -L/usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64
>> -lgfortranbegin
>> arguments = -DMX_COMPAT_32
>> -> LD = g++-4.0
>> -> Link flags:
>> LDFLAGS = -Wl,-twolevel_namespace -undefined
>> error -arch x86_64 -Wl,-syslibroot,/Developer/SDKs/MacOSX10.6.sdk
>> -mmacosx-version-min=10.5 -bundle
>> -Wl,-exported_symbols_list,/Applications/-math/MATLAB_R2011b.app/extern/lib/maci64/mexFunction.map
>> -framework vecLib
>> LDDEBUGFLAGS = -g
>> LDOPTIMFLAGS = -fno-common -no-cpp-precomp
>> -fexceptions -arch x86_64 -m64 -DIPOPT_BUILD -DMATLAB_MEXFILE
>> LDEXTENSION = .mexmaci64
>> arguments =
>> -L/Users/ray/build/Ipopt-3.10.1/build/lib -lipopt
>> -L/Users/ray/build/Ipopt-3.10.1/build/lib -lcoinmumps -lpthread
>> -> LDCXX =
>> -> Link flags:
>> LDCXXFLAGS =
>> LDCXXDEBUGFLAGS =
>> LDCXXOPTIMFLAGS =
>> LDCXXEXTENSION =
>> arguments =
>> -L/Users/ray/build/Ipopt-3.10.1/build/lib -lipopt
>> -L/Users/ray/build/Ipopt-3.10.1/build/lib -lcoinmumps -lpthread
>> ----------------------------------------------------------------
>>
>>
>> mex: -framework not a valid option.
>>
>> Usage:
>> MEX [option1 ... optionN] sourcefile1 [... sourcefileN]
>> [objectfile1 ... objectfileN] [libraryfile1 ... libraryfileN]
>>
>> Use the -help option for more information, or consult the MATLAB
>> External Interfaces Guide.
>>
>> make: *** [ipopt.mexmaci64] Error 1
>>
>>
>> So if I manually attempt to run the same call to mex, with all of the
>> '-framework vecLib' entries removed (why are there 4 of them anyway)?
>> Then I get the following error ...
>>
>> ld: library not found for -lgfortranbegin
>> collect2: ld returned 1 exit status
>>
>> mex: link of ' "ipopt.mexmaci64"' failed.
>>
>> But I do have ...
>> /usr/lib/gcc/i686-apple-darwin10/4.2.1/libgfortranbegin.a
>> /usr/lib/gcc/i686-apple-darwin10/4.2.1/libgfortranbegin.la
>> /usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64/libgfortranbegin.a
>> /usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64/libgfortranbegin.la
>> I'm guessing all I need is a nudge in the right direction. Any help
>> is appreciated. By the way, once I am successful with this build, I
>> hope to try it on OS X 10.7 Lion as well.
>>
>> Thanks,
>>
>>
>> --
>> Ray Zimmerman
>> Senior Research Associate
>> 419A Warren Hall, Cornell University, Ithaca, NY 14853
>> phone: (607) 255-9645
>>
>>
>>
>>
>> _______________________________________________
>> Ipopt mailing list
>> Ipopt at list.coin-or.org <mailto:Ipopt at list.coin-or.org>
>> http://list.coin-or.org/mailman/listinfo/ipopt
>
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20111004/3bb84d50/attachment-0001.html>
More information about the Ipopt
mailing list