[Ipopt] mex: link of ' "ipopt.mexmaci64"' failed.
Tony Kelman
kelman at berkeley.edu
Mon Jul 13 16:00:47 EDT 2015
Did you try the precompiled mex files? Please answer that first before
spending any more time trying to compile it yourself, if you don't need to
do so.
The missing symbols look like they should be coming from the Ipopt library
itself. Did you do make; make install on Ipopt itself before trying to build
the matlab interface?
-----Original Message-----
From: Asher Metzger
Sent: Monday, July 13, 2015 5:55 AM
To: Tony Kelman ; ipopt at list.coin-or.org
Subject: RE: [Ipopt] mex: link of ' "ipopt.mexmaci64"' failed.
Hi Tony,
Thanks for answering. I don't know the answer to your question.
here is the full output to the make command:
asher-metzgers-macbook-pro:src ashermetzger$ make
make mexopts
case `uname` in \
Darwin*) \
if ! test -e mexopts.sh; then \
sed -e 's/-arch $ARCHS//g' \
/Applications/Matlab_R2013a_Student.app/bin/mexopts.sh > mexopts.sh;
\
SDKROOT=`grep -m1 'SDKROOT=' mexopts.sh | sed -e 's/SDKROOT=//g'`; \
if ! test -d $SDKROOT; then \
sed -e 's/-arch $ARCHS//g' \
-e 's/-isysroot $SDKROOT//g' \
-e 's/-Wl,-syslibroot,$SDKROOT//g' \
/Applications/Matlab_R2013a_Student.app/bin/mexopts.sh >
mexopts.sh; \
fi; \
fi \
;; \
MINGW*) \
if ! test -e mexopts.bat; then \
echo Warning: no mexopts.bat found. You will probably need to run
Gnumex to generate this file. Call \"make gnumex\" then try again.; \
else \
libdirwin=$(cd /Users/ashermetzger/CoinIpopt/build/lib; cmd /c 'for %i
in (.) do @echo %~fi' | sed 's|\\|/|g'); \
mingwlibdirwin=$(cd /mingw/lib; cmd /c 'for %i in (.) do @echo %~fi' |
sed 's|\\|/|g'); \
GM_ADD_LIBS=$(echo "-llibmx -llibmex -llibmat
`PKG_CONFIG_PATH=/Users/ashermetzger/CoinIpopt/build/lib64/pkgconfig:/Users/ashermetzger/CoinIpopt/build/lib/pkgconfig:/Users/ashermetzger/CoinIpopt/build/share/pkgconfig:
pkg-config --libs ipopt | sed -e 's///g'` " | sed -e
"s| -L/Users/ashermetzger/CoinIpopt/build/lib | -L$libdirwin |g" -e
"s| -L/mingw/lib | -L$mingwlibdirwin |g"); \
\
cp mexopts.bat mexopts.bat.orig; \
sed -e 's|COMPILER=gcc|COMPILER=clang++|' -e
's|GM_MEXLANG=c$|GM_MEXLANG=cxx|' \
-e
"s|GM_ADD_LIBS=-llibmx -llibmex -llibmat$|GM_ADD_LIBS=$GM_ADD_LIBS|" \
mexopts.bat.orig > mexopts.bat; \
fi \
;; \
CYGWIN*) \
if ! test -e mexopts.bat; then \
echo Warning: no mexopts.bat found. You will probably need to run
Gnumex to generate this file. Call \"make gnumex\" then try again.; \
else \
libdirwin=`cygpath -m /Users/ashermetzger/CoinIpopt/build/lib`; \
cyglibdirwin=`cygpath -m /usr/lib`; \
GM_ADD_LIBS=$(echo "-llibmx -llibmex -llibmat
`PKG_CONFIG_PATH=/Users/ashermetzger/CoinIpopt/build/lib64/pkgconfig:/Users/ashermetzger/CoinIpopt/build/lib/pkgconfig:/Users/ashermetzger/CoinIpopt/build/share/pkgconfig:
pkg-config --libs ipopt | sed -e 's///g'` " | sed -e
"s| -L/Users/ashermetzger/CoinIpopt/build/lib | -L$libdirwin |g" -e
"s| -L/usr/lib/| -L$cyglibdirwin/|g"); \
\
cp mexopts.bat mexopts.bat.orig; \
sed -e 's|COMPILER=gcc|COMPILER=clang++|' -e
's|GM_MEXLANG=c$|GM_MEXLANG=cxx|' \
-e
"s|GM_ADD_LIBS=-llibmx -llibmex -llibmat$|GM_ADD_LIBS=$GM_ADD_LIBS|" \
mexopts.bat.orig > mexopts.bat; \
fi \
;; \
esac
/Applications/Matlab_R2013a_Student.app/bin/mex -v -cxx -O CC="clang++"
CXX="clang++" LD="clang++"
COPTIMFLAGS="-O3 -pipe -DNDEBUG -Wparentheses -Wreturn-type -Wcast-qual -Wall
-Wpointer-arith -Wwrite-strings -Wconversion -Wno-unknown-pragmas -Wno-long-long
-DIPOPT_BUILD -DMATLAB_MEXFILE "
CXXOPTIMFLAGS="-O3 -pipe -DNDEBUG -Wparentheses -Wreturn-type -Wcast-qual -Wall
-Wpointer-arith -Wwrite-strings -Wconversion -Wno-unknown-pragmas -Wno-long-long
-DIPOPT_BUILD -DMATLAB_MEXFILE "
LDOPTIMFLAGS="-O3 -pipe -DNDEBUG -Wparentheses -Wreturn-type -Wcast-qual -Wall
-Wpointer-arith -Wwrite-strings -Wconversion -Wno-unknown-pragmas -Wno-long-long
-DIPOPT_BUILD -DMATLAB_MEXFILE "
`PKG_CONFIG_PATH=/Users/ashermetzger/CoinIpopt/build/lib64/pkgconfig:/Users/ashermetzger/CoinIpopt/build/lib/pkgconfig:/Users/ashermetzger/CoinIpopt/build/share/pkgconfig:
pkg-config --libs ipopt | sed -e 's///g'` -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
sed: first RE may not be empty
**************************************************************************
Warning: Neither -compatibleArrayDims nor -largeArrayDims is selected.
Using -compatibleArrayDims. In the future, MATLAB will require
the use of -largeArrayDims and remove the -compatibleArrayDims
option. For more information, see:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html
**************************************************************************
-> mexopts.sh sourced from directory (DIR = .)
FILE =
/Users/ashermetzger/CoinIpopt/build/Ipopt/contrib/MatlabInterface/src/mexopts.sh
----------------------------------------------------------------
-> MATLAB = /Applications/Matlab_R2013a_Student.app
-> CC = clang++
-> CC flags:
CFLAGS
= -fno-common -mmacosx-version-min=10.7 -fexceptions
CDEBUGFLAGS = -g
COPTIMFLAGS
= -O3 -pipe -DNDEBUG -Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith
-Wwrite-strings -Wconversion -Wno-unknown-pragmas -Wno-long-long -DIPOPT_BUILD
-DMATLAB_MEXFILE
CLIBS
= -L/Applications/Matlab_R2013a_Student.app/bin/maci64 -lmx -lmex
-lmat -lstdc++
arguments = -DMX_COMPAT_32
-> CXX = clang++
-> CXX flags:
CXXFLAGS
= -fno-common -fexceptions -mmacosx-version-min=10.7
CXXDEBUGFLAGS = -g
CXXOPTIMFLAGS
= -O3 -pipe -DNDEBUG -Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith
-Wwrite-strings -Wconversion -Wno-unknown-pragmas -Wno-long-long -DIPOPT_BUILD
-DMATLAB_MEXFILE
CXXLIBS
= -L/Applications/Matlab_R2013a_Student.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/Matlab_R2013a_Student.app/bin/maci64 -lmx -lmex
-lmat -L/usr/local/Cellar/gcc/5.1.0/lib/gcc/5/gcc/x86_64-apple-darwin13.4.0/5.1.0/../../..
-lgfortran -L/usr/local/Cellar/gcc/5.1.0/lib/gcc/5/gcc/x86_64-apple-darwin13.4.0/5.1.0
-lgfortranbegin
arguments = -DMX_COMPAT_32
-> LD = clang++
-> Link flags:
LDFLAGS
= -mmacosx-version-min=10.7 -bundle -Wl,-exported_symbols_list,/Applications/Matlab_R2013a_Student.app/extern/lib/maci64/mexFunction.map
-framework vecLib
LDDEBUGFLAGS = -g
LDOPTIMFLAGS
= -O3 -pipe -DNDEBUG -Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith
-Wwrite-strings -Wconversion -Wno-unknown-pragmas -Wno-long-long -DIPOPT_BUILD
-DMATLAB_MEXFILE
LDEXTENSION = .mexmaci64
arguments =
-> LDCXX =
-> Link flags:
LDCXXFLAGS =
LDCXXDEBUGFLAGS =
LDCXXOPTIMFLAGS =
LDCXXEXTENSION =
arguments =
----------------------------------------------------------------
->
clang++ -O3 -pipe -DNDEBUG -Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith
-Wwrite-strings -Wconversion -Wno-unknown-pragmas -Wno-long-long -DIPOPT_BUILD
-DMATLAB_MEXFILE -mmacosx-version-min=10.7 -bundle -Wl,-exported_symbols_list,/Applications/Matlab_R2013a_Student.app/extern/lib/maci64/mexFunction.map
-framework vecLib -o "ipopt.mexmaci64" "matlabexception.o"
"matlabfunctionhandle.o" "matlabjournal.o" "iterate.o" "ipoptoptions.o"
"options.o" "sparsematrix.o" "callbackfunctions.o" "matlabinfo.o"
"matlabprogram.o"
"ipopt.o" -L/Applications/Matlab_R2013a_Student.app/bin/maci64 -lmx -lmex -lmat
-lstdc++
Undefined symbols for architecture x86_64:
"Ipopt::TNLPAdapter::ResortX(Ipopt::Vector const&, double*)", referenced
from:
CallbackFunctions::iterCallback(int, double, double, double, double,
double, double, double, double, int, Ipopt::IpoptData const*,
Ipopt::IpoptCalculatedQuantities*, int) const in callbackfunctions.o
"Ipopt::IpoptApplication::Initialize()", referenced from:
_mexFunction in ipopt.o
"Ipopt::IpoptApplication::Statistics()", referenced from:
_mexFunction in ipopt.o
"Ipopt::IpoptApplication::OptimizeTNLP(Ipopt::SmartPtr<Ipopt::TNLP>
const&)", referenced from:
_mexFunction in ipopt.o
"Ipopt::IpoptApplication::IpoptApplication(bool, bool)", referenced from:
_mexFunction in ipopt.o
"Ipopt::IpoptApplication::~IpoptApplication()", referenced from:
_mexFunction in ipopt.o
"Ipopt::Journal::SetPrintLevel(Ipopt::EJournalCategory,
Ipopt::EJournalLevel)", referenced from:
vtable for Ipopt::MatlabJournal in matlabjournal.o
"Ipopt::Journal::SetAllPrintLevels(Ipopt::EJournalLevel)", referenced
from:
vtable for Ipopt::MatlabJournal in matlabjournal.o
"Ipopt::Journal::Name()", referenced from:
vtable for Ipopt::MatlabJournal in matlabjournal.o
"Ipopt::Journal::Journal(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&,
Ipopt::EJournalLevel)", referenced from:
Ipopt::MatlabJournal::MatlabJournal(Ipopt::EJournalLevel) in
matlabjournal.o
Ipopt::MatlabJournal::MatlabJournal(Ipopt::EJournalLevel) in
matlabjournal.o
"Ipopt::Journal::~Journal()", referenced from:
Ipopt::MatlabJournal::~MatlabJournal() in matlabjournal.o
Ipopt::MatlabJournal::~MatlabJournal() in matlabjournal.o
"Ipopt::Snprintf(char*, long, char const*, ...)", referenced from:
MatlabException::MatlabException(char const*) in matlabexception.o
MatlabException::MatlabException(char const*) in matlabexception.o
MatlabException::MatlabException(MatlabException const&) in
matlabexception.o
MatlabException::MatlabException(MatlabException const&) in
matlabexception.o
MatlabException::operator=(MatlabException const&) in
matlabexception.o
IpoptOptions::setOption(char const*, mxArray_tag const*) in
ipoptoptions.o
IpoptOptions::setStringOption(char const*, mxArray_tag const*) in
ipoptoptions.o
...
"Ipopt::Journal::IsAccepted(Ipopt::EJournalCategory, Ipopt::EJournalLevel)
const", referenced from:
vtable for Ipopt::MatlabJournal in matlabjournal.o
"std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> >::compare(char const*) const", referenced from:
IpoptOptions::useQuasiNewton() const in ipoptoptions.o
IpoptOptions::useDerivChecker() const in ipoptoptions.o
IpoptOptions::userScaling() const in ipoptoptions.o
"std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> >::__init(char const*, unsigned long)", referenced
from:
Ipopt::MatlabJournal::MatlabJournal(Ipopt::EJournalLevel) in
matlabjournal.o
Ipopt::MatlabJournal::MatlabJournal(Ipopt::EJournalLevel) in
matlabjournal.o
IpoptOptions::setOption(char const*, mxArray_tag const*) in
ipoptoptions.o
IpoptOptions::useQuasiNewton() const in ipoptoptions.o
IpoptOptions::useDerivChecker() const in ipoptoptions.o
IpoptOptions::userScaling() const in ipoptoptions.o
IpoptOptions::printLevel() const in ipoptoptions.o
...
"std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> >::~basic_string()", referenced from:
Ipopt::MatlabJournal::MatlabJournal(Ipopt::EJournalLevel) in
matlabjournal.o
Ipopt::MatlabJournal::MatlabJournal(Ipopt::EJournalLevel) in
matlabjournal.o
IpoptOptions::setOption(char const*, mxArray_tag const*) in
ipoptoptions.o
IpoptOptions::useQuasiNewton() const in ipoptoptions.o
IpoptOptions::useDerivChecker() const in ipoptoptions.o
IpoptOptions::userScaling() const in ipoptoptions.o
IpoptOptions::printLevel() const in ipoptoptions.o
...
"typeinfo for Ipopt::TNLPAdapter", referenced from:
CallbackFunctions::iterCallback(int, double, double, double, double,
double, double, double, double, int, Ipopt::IpoptData const*,
Ipopt::IpoptCalculatedQuantities*, int) const in callbackfunctions.o
"typeinfo for Ipopt::OrigIpoptNLP", referenced from:
CallbackFunctions::iterCallback(int, double, double, double, double,
double, double, double, double, int, Ipopt::IpoptData const*,
Ipopt::IpoptCalculatedQuantities*, int) const in callbackfunctions.o
"typeinfo for Ipopt::Journal", referenced from:
typeinfo for Ipopt::MatlabJournal in matlabjournal.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
mex: link of ' "ipopt.mexmaci64"' failed.
make: *** [ipopt.mexmaci64] Error 1
Thanks again,
Asher
> From: kelman at berkeley.edu
> To: ashermetzger at hotmail.com; ipopt at list.coin-or.org
> Subject: Re: [Ipopt] mex: link of ' "ipopt.mexmaci64"' failed.
> Date: Sun, 12 Jul 2015 12:45:22 -0700
>
> Do the posted binary mex files not work for you? Please post the entire
> error message, not just the very end. Which symbols are missing is the
> important part.
>
More information about the Ipopt
mailing list