clang: error: linker command failed with exit code 1 while compiling mex in MATLAB2015b on mac os X 10.13.4

5 次查看(过去 30 天)
Hi. I'm trying to compile a mex file on MAC OS X 10.13.4 using MATLAB 2015b and Xcode 9.3. When executing the command
mex -v volunwarpgradMEX.cpp
I get the following output:
Verbose mode is on.
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:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
... Looking for compiler 'Xcode Clang++' ...
... Looking for environment variable 'DEVELOPER_DIR' ...No.
... Executing command 'xcode-select -print-path' ...Yes ('/Applications/Xcode.app/Contents/Developer').
... Looking for folder '/Applications/Xcode.app/Contents/Developer' ...Yes.
... Executing command 'which xcrun' ...Yes ('/usr/bin/xcrun').
... Looking for folder '/usr/bin' ...Yes.
... Executing command 'xcode-select -print-path' ...Yes ('/Applications/Xcode.app/Contents/Developer').
... Looking for folder '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk' ...No.
... Looking for folder '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk' ...No.
... Looking for folder '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk' ...Yes.
... Executing command 'xcode-select -print-path' ...Yes ('/Applications/Xcode.app/Contents/Developer').
... Looking for folder '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk' ...No.
... Looking for folder '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk' ...No.
... Looking for folder '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk' ...Yes.
... Executing command 'echo /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk | rev | cut -c1-10 | rev | egrep -oh '[0-9]+\.[0-9]+'' ...Yes ('10.13').
Found installed compiler 'Xcode Clang++'.
Options file details
-------------------------------------------------------------------
Compiler location: /Applications/Xcode.app/Contents/Developer
Options file: /Users/donatas/.matlab/R2015b/mex_C++_maci64.xml
CMDLINE100 : /usr/bin/xcrun -sdk macosx10.13 clang++ -c -DMX_COMPAT_32 -DMATLAB_MEX_FILE -I"/Applications/MATLAB_R2015b.app/extern/include" -I"/Applications/MATLAB_R2015b.app/simulink/include" -fno-common -arch x86_64 -mmacosx-version-min=10.13 -fexceptions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -fobjc-arc -std=c++11 -stdlib=libc++ -O2 -DNDEBUG /Users/donatas/Documents/SD_scratch/volunwarpgradMEX.cpp -o /var/folders/xs/xx9d6f1x4d7b1hs44z9gs45w0000gn/T//mex_15031778690944_17057/volunwarpgradMEX.o
CMDLINE200 : /usr/bin/xcrun -sdk macosx10.13 clang++ -Wl,-twolevel_namespace -undefined error -arch x86_64 -mmacosx-version-min=10.13 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -framework Cocoa -bundle -Wl,-exported_symbols_list,"/Applications/MATLAB_R2015b.app/extern/lib/maci64/mexFunction.map" -stdlib=libc++ -O -Wl,-exported_symbols_list,"/Applications/MATLAB_R2015b.app/extern/lib/maci64/mexFunction.map" /var/folders/xs/xx9d6f1x4d7b1hs44z9gs45w0000gn/T//mex_15031778690944_17057/volunwarpgradMEX.o -L"/Applications/MATLAB_R2015b.app/bin/maci64" -lmx -lmex -lmat -o volunwarpgradMEX.mexmaci64
CMDLINE300 : rm -f /var/folders/xs/xx9d6f1x4d7b1hs44z9gs45w0000gn/T//mex_15031778690944_17057/volunwarpgradMEX.o
CXX : /usr/bin/xcrun -sdk macosx10.13 clang++
DEFINES : -DMX_COMPAT_32 -DMATLAB_MEX_FILE
MATLABMEX : -DMATLAB_MEX_FILE
CXXFLAGS : -fno-common -arch x86_64 -mmacosx-version-min=10.13 -fexceptions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -fobjc-arc -std=c++11 -stdlib=libc++
INCLUDE : -I"/Applications/MATLAB_R2015b.app/extern/include" -I"/Applications/MATLAB_R2015b.app/simulink/include"
CXXOPTIMFLAGS : -O2 -DNDEBUG
CXXDEBUGFLAGS : -g
LDXX : /usr/bin/xcrun -sdk macosx10.13 clang++
LDFLAGS : -Wl,-twolevel_namespace -undefined error -arch x86_64 -mmacosx-version-min=10.13 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -framework Cocoa -bundle -Wl,-exported_symbols_list,"/Applications/MATLAB_R2015b.app/extern/lib/maci64/mexFunction.map" -stdlib=libc++
LDBUNDLE : -bundle
LINKEXPORT : -Wl,-exported_symbols_list,"/Applications/MATLAB_R2015b.app/extern/lib/maci64/mexFunction.map"
LINKLIBS : -L"/Applications/MATLAB_R2015b.app/bin/maci64" -lmx -lmex -lmat
LDOPTIMFLAGS : -O
LDDEBUGFLAGS : -g
OBJEXT : .o
LDEXT : .mexmaci64
DEVELOPER_DIR_CHECK :
XCODE_DIR : /Applications/Xcode.app/Contents/Developer
XCRUN_DIR : /usr/bin
ISYSROOT : /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk
SDKVER : 10.13
MATLABROOT : /Applications/MATLAB_R2015b.app
ARCH : maci64
SRC : /Users/donatas/Documents/SD_scratch/volunwarpgradMEX.cpp
OBJ : /var/folders/xs/xx9d6f1x4d7b1hs44z9gs45w0000gn/T//mex_15031778690944_17057/volunwarpgradMEX.o
OBJS : /var/folders/xs/xx9d6f1x4d7b1hs44z9gs45w0000gn/T//mex_15031778690944_17057/volunwarpgradMEX.o
SRCROOT : /Users/donatas/Documents/SD_scratch/volunwarpgradMEX
DEF : /var/folders/xs/xx9d6f1x4d7b1hs44z9gs45w0000gn/T//mex_15031778690944_17057/volunwarpgradMEX.def
EXP : volunwarpgradMEX.exp
LIB : volunwarpgradMEX.lib
EXE : volunwarpgradMEX.mexmaci64
ILK : volunwarpgradMEX.ilk
MANIFEST : volunwarpgradMEX.mexmaci64.manifest
TEMPNAME : volunwarpgradMEX
EXEDIR :
EXENAME : volunwarpgradMEX
OPTIM : -O2 -DNDEBUG
LINKOPTIM : -O
-------------------------------------------------------------------
Building with 'Xcode Clang++'.
/usr/bin/xcrun -sdk macosx10.13 clang++ -c -DMX_COMPAT_32 -DMATLAB_MEX_FILE -I"/Applications/MATLAB_R2015b.app/extern/include" -I"/Applications/MATLAB_R2015b.app/simulink/include" -fno-common -arch x86_64 -mmacosx-version-min=10.13 -fexceptions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -fobjc-arc -std=c++11 -stdlib=libc++ -O2 -DNDEBUG /Users/donatas/Documents/SD_scratch/volunwarpgradMEX.cpp -o /var/folders/xs/xx9d6f1x4d7b1hs44z9gs45w0000gn/T//mex_15031778690944_17057/volunwarpgradMEX.o
/usr/bin/xcrun -sdk macosx10.13 clang++ -Wl,-twolevel_namespace -undefined error -arch x86_64 -mmacosx-version-min=10.13 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -framework Cocoa -bundle -Wl,-exported_symbols_list,"/Applications/MATLAB_R2015b.app/extern/lib/maci64/mexFunction.map" -stdlib=libc++ -O -Wl,-exported_symbols_list,"/Applications/MATLAB_R2015b.app/extern/lib/maci64/mexFunction.map" /var/folders/xs/xx9d6f1x4d7b1hs44z9gs45w0000gn/T//mex_15031778690944_17057/volunwarpgradMEX.o -L"/Applications/MATLAB_R2015b.app/bin/maci64" -lmx -lmex -lmat -o volunwarpgradMEX.mexmaci64
Error using mex
Undefined symbols for architecture x86_64:
"index(int const*, int, int, int)", referenced from:
_mexFunction in volunwarpgradMEX.o
"getvxlval(double const*, int const*, double const*, double const*, int, int, double&)", referenced
from:
getuwlph(double const*, int const*, double const*, double const*, double const*, double const*,
double*) in volunwarpgradMEX.o
getJac(double const*, int, int const*, double const*, double const*, double const*, double const*,
double, double const*, double const*, double const*) in volunwarpgradMEX.o
_mexFunction in volunwarpgradMEX.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Any ideas what could have gone wrong? I have files getvxlval.cpp and getvxlval.h in addition to volunwarpgradMEX.cpp that are linked together. The mex file are supposed to be error-free since it was compiled before on a linux platform.
Thank you for any suggestions!

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 C Shared Library Integration 的更多信息

产品


版本

R2015b

Community Treasure Hunt

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

Start Hunting!

Translated by