C++ ld:找不到架构x86_64的符号clang:错误
我试图使用matlab2020a(macOsx10.14)中的HED代码评估边缘检测结果,并得到以下错误:C++ ld:找不到架构x86_64的符号clang:错误,c++,xcode,matlab,edge-detection,C++,Xcode,Matlab,Edge Detection,我试图使用matlab2020a(macOsx10.14)中的HED代码评估边缘检测结果,并得到以下错误: MEX file '/Users/test/EdgeDetection/eval/edges/private2/correspondPixels.mexmaci64' invalid: dlopen(/Users/test/EdgeDetection/eval/edges/private2/correspondPixels.mexmaci64, 6): Library not loaded
MEX file
'/Users/test/EdgeDetection/eval/edges/private2/correspondPixels.mexmaci64'
invalid:
dlopen(/Users/test/EdgeDetection/eval/edges/private2/correspondPixels.mexmaci64,
6): Library not loaded: @loader_path/libmex.dylib
Referenced from:
/Users/test/EdgeDetection/eval/edges/private2/correspondPixels.mexmaci64
Reason: image not found
因此,我尝试使用
mex -v correspondPixels.cc
输出如下所示:
INCLUDE = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1;/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/10.0.0/include;/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks;/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1;/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/10.0.0/include;/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks;
Options file details
-------------------------------------------------------------------
Compiler location: /Applications/Xcode.app/Contents/Developer
Options file: /Users/a710/Library/Application Support/MathWorks/MATLAB/R2020a/mex_C++_maci64.xml
CMDLINE200 : /usr/bin/xcrun -sdk macosx10.14 clang++ -Wl,-twolevel_namespace -undefined error -arch x86_64 -mmacosx-version-min=10.9 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -framework Cocoa -bundle -stdlib=libc++ -O -Wl,-exported_symbols_list,"/Applications/Polyspace/R2020a/extern/lib/maci64/mexFunction.map" -Wl,-exported_symbols_list,"/Applications/Polyspace/R2020a/extern/lib/maci64/c_exportsmexfileversion.map" -Wl,-U,_mexCreateMexFunction -Wl,-U,_mexDestroyMexFunction -Wl,-U,_mexFunctionAdapter -Wl,-exported_symbols_list,"/Applications/Polyspace/R2020a/extern/lib/maci64/cppMexFunction.map" /var/folders/8q/gj54rs5s6cv3whdzmhkf79_m0000gn/T/mex_1719808412277515_56763/correspondPixels.o /var/folders/8q/gj54rs5s6cv3whdzmhkf79_m0000gn/T/mex_1719808412277515_56763/cpp_mexapi_version.o -L"/Applications/Polyspace/R2020a/bin/maci64" -lmx -lmex -lmat -L"/Applications/Polyspace/R2020a/extern/bin/maci64" -lMatlabDataArray -lMatlabEngine -o correspondPixels.mexmaci64
CC : /usr/bin/xcrun -sdk macosx10.14 clang
CXX : /usr/bin/xcrun -sdk macosx10.14 clang++
DEFINES : -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -DMATLAB_MEX_FILE
MATLABMEX : -DMATLAB_MEX_FILE
MACOSX_DEPLOYMENT_TARGET : 10.9
CFLAGS : -fno-common -arch x86_64 -mmacosx-version-min=10.9 -fexceptions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
CXXFLAGS : -fno-common -arch x86_64 -mmacosx-version-min=10.9 -fexceptions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -fobjc-arc -std=c++11 -stdlib=libc++
INCLUDE : -I"/Applications/Polyspace/R2020a/extern/include" -I"/Applications/Polyspace/R2020a/simulink/include"
CXXOPTIMFLAGS : -O2 -fwrapv -DNDEBUG
CXXDEBUGFLAGS : -g
LD : /usr/bin/xcrun -sdk macosx10.14 clang
LDXX : /usr/bin/xcrun -sdk macosx10.14 clang++
LDFLAGS : -Wl,-twolevel_namespace -undefined error -arch x86_64 -mmacosx-version-min=10.9 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -framework Cocoa -bundle -stdlib=libc++
LDBUNDLE : -bundle
LINKEXPORT : -Wl,-exported_symbols_list,"/Applications/Polyspace/R2020a/extern/lib/maci64/mexFunction.map"
LINKEXPORTVER : -Wl,-exported_symbols_list,"/Applications/Polyspace/R2020a/extern/lib/maci64/c_exportsmexfileversion.map"
LINKEXPORTCPP : -Wl,-U,_mexCreateMexFunction -Wl,-U,_mexDestroyMexFunction -Wl,-U,_mexFunctionAdapter -Wl,-exported_symbols_list,"/Applications/Polyspace/R2020a/extern/lib/maci64/cppMexFunction.map"
LINKLIBS : -L"/Applications/Polyspace/R2020a/bin/maci64" -lmx -lmex -lmat -L"/Applications/Polyspace/R2020a/extern/bin/maci64" -lMatlabDataArray -lMatlabEngine
LDOPTIMFLAGS : -O
LDDEBUGFLAGS : -g
OBJEXT : .o
LDEXT : .mexmaci64
SETENV : CC="/usr/bin/xcrun -sdk macosx10.14 clang"
CXX="/usr/bin/xcrun -sdk macosx10.14 clang++"
CFLAGS="-fno-common -arch x86_64 -mmacosx-version-min=10.9 -fexceptions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -DMATLAB_MEX_FILE "
CXXFLAGS="-fno-common -arch x86_64 -mmacosx-version-min=10.9 -fexceptions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -fobjc-arc -std=c++11 -stdlib=libc++ -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -DMATLAB_MEX_FILE "
COPTIMFLAGS="-O2 -fwrapv -DNDEBUG"
CXXOPTIMFLAGS="-O2 -fwrapv -DNDEBUG"
CDEBUGFLAGS="-g"
CXXDEBUGFLAGS="-g"
LD="/usr/bin/xcrun -sdk macosx10.14 clang"
LDXX="/usr/bin/xcrun -sdk macosx10.14 clang++"
LDFLAGS="-Wl,-twolevel_namespace -undefined error -arch x86_64 -mmacosx-version-min=10.9 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -framework Cocoa -bundle -stdlib=libc++ -L"/Applications/Polyspace/R2020a/bin/maci64" -lmx -lmex -lmat -L"/Applications/Polyspace/R2020a/extern/bin/maci64" -lMatlabDataArray -lMatlabEngine -Wl,-exported_symbols_list,"/Applications/Polyspace/R2020a/extern/lib/maci64/mexFunction.map""
LDDEBUGFLAGS="-g"
DEVELOPER_DIR_CHECK :
XCODE_DIR : /Applications/Xcode.app/Contents/Developer
XCRUN_DIR : /usr/bin
XCODE_AGREED_VERSION : 9.2
ISYSROOT : /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
SDKVER : 10.14
CLANG_VERSION : 10.0.0
MATLABROOT : /Applications/Polyspace/R2020a
ARCH : maci64
SRC : "/Users/hed/data/BSDS500/bench/source/correspondPixels.cc";"/Applications/Polyspace/R2020a/extern/version/cpp_mexapi_version.cpp"
OBJ : /var/folders/8q/gj54rs5s6cv3whdzmhkf79_m0000gn/T/mex_1719808412277515_56763/correspondPixels.o;/var/folders/8q/gj54rs5s6cv3whdzmhkf79_m0000gn/T/mex_1719808412277515_56763/cpp_mexapi_version.o
OBJS : /var/folders/8q/gj54rs5s6cv3whdzmhkf79_m0000gn/T/mex_1719808412277515_56763/correspondPixels.o /var/folders/8q/gj54rs5s6cv3whdzmhkf79_m0000gn/T/mex_1719808412277515_56763/cpp_mexapi_version.o
SRCROOT : /Users/hed/data/BSDS500/bench/source/correspondPixels
DEF : /var/folders/8q/gj54rs5s6cv3whdzmhkf79_m0000gn/T/mex_1719808412277515_56763/correspondPixels.def
EXP : "correspondPixels.exp"
LIB : "correspondPixels.lib"
EXE : correspondPixels.mexmaci64
ILK : "correspondPixels.ilk"
MANIFEST : "correspondPixels.mexmaci64.manifest"
TEMPNAME : correspondPixels
EXEDIR :
EXENAME : correspondPixels
OPTIM : -O2 -fwrapv -DNDEBUG
LINKOPTIM : -O
CMDLINE100_0 : /usr/bin/xcrun -sdk macosx10.14 clang++ -c -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -DMATLAB_MEX_FILE -I"/Applications/Polyspace/R2020a/extern/include" -I"/Applications/Polyspace/R2020a/simulink/include" -fno-common -arch x86_64 -mmacosx-version-min=10.9 -fexceptions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -fobjc-arc -std=c++11 -stdlib=libc++ -O2 -fwrapv -DNDEBUG "/Users/hed/data/BSDS500/bench/source/correspondPixels.cc" -o /var/folders/8q/gj54rs5s6cv3whdzmhkf79_m0000gn/T/mex_1719808412277515_56763/correspondPixels.o
CMDLINE100_1 : /usr/bin/xcrun -sdk macosx10.14 clang++ -c -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -DMATLAB_MEX_FILE -I"/Applications/Polyspace/R2020a/extern/include" -I"/Applications/Polyspace/R2020a/simulink/include" -fno-common -arch x86_64 -mmacosx-version-min=10.9 -fexceptions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -fobjc-arc -std=c++11 -stdlib=libc++ -O2 -fwrapv -DNDEBUG "/Applications/Polyspace/R2020a/extern/version/cpp_mexapi_version.cpp" -o /var/folders/8q/gj54rs5s6cv3whdzmhkf79_m0000gn/T/mex_1719808412277515_56763/cpp_mexapi_version.o
-------------------------------------------------------------------
use 'Xcode Clang++' compile.
/usr/bin/xcrun -sdk macosx10.14 clang++ -c -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -DMATLAB_MEX_FILE -I"/Applications/Polyspace/R2020a/extern/include" -I"/Applications/Polyspace/R2020a/simulink/include" -fno-common -arch x86_64 -mmacosx-version-min=10.9 -fexceptions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -fobjc-arc -std=c++11 -stdlib=libc++ -O2 -fwrapv -DNDEBUG "/Users/a710/Desktop/hed/data/BSDS500/bench/source/correspondPixels.cc" -o /var/folders/8q/gj54rs5s6cv3whdzmhkf79_m0000gn/T/mex_1719808412277515_56763/correspondPixels.o
In file included from /Users/a710/Desktop/hed/data/BSDS500/bench/source/correspondPixels.cc:8:
/Users/a710/Desktop/hed/data/BSDS500/bench/source/csa.hh:912:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
else
^
/Users/a710/Desktop/hed/data/BSDS500/bench/source/csa.hh:1217:25: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
(void) fprintf(stderr,nomem_msg);
^~~~~~~~~
/Users/a710/Desktop/hed/data/BSDS500/bench/source/csa.hh:1217:25: note: treat the string as an argument to avoid this
(void) fprintf(stderr,nomem_msg);
^
"%s",
/Users/a710/Desktop/hed/data/BSDS500/bench/source/csa.hh:1223:25: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
(void) fprintf(stderr,nomem_msg);
^~~~~~~~~
/Users/a710/Desktop/hed/data/BSDS500/bench/source/csa.hh:1223:25: note: treat the string as an argument to avoid this
(void) fprintf(stderr,nomem_msg);
^
"%s",
3 warnings generated.
/usr/bin/xcrun -sdk macosx10.14 clang++ -c -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -DMATLAB_MEX_FILE -I"/Applications/Polyspace/R2020a/extern/include" -I"/Applications/Polyspace/R2020a/simulink/include" -fno-common -arch x86_64 -mmacosx-version-min=10.9 -fexceptions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -fobjc-arc -std=c++11 -stdlib=libc++ -O2 -fwrapv -DNDEBUG "/Applications/Polyspace/R2020a/extern/version/cpp_mexapi_version.cpp" -o /var/folders/8q/gj54rs5s6cv3whdzmhkf79_m0000gn/T/mex_1719808412277515_56763/cpp_mexapi_version.o
/usr/bin/xcrun -sdk macosx10.14 clang++ -Wl,-twolevel_namespace -undefined error -arch x86_64 -mmacosx-version-min=10.9 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -framework Cocoa -bundle -stdlib=libc++ -O -Wl,-exported_symbols_list,"/Applications/Polyspace/R2020a/extern/lib/maci64/mexFunction.map" -Wl,-exported_symbols_list,"/Applications/Polyspace/R2020a/extern/lib/maci64/c_exportsmexfileversion.map" -Wl,-U,_mexCreateMexFunction -Wl,-U,_mexDestroyMexFunction -Wl,-U,_mexFunctionAdapter -Wl,-exported_symbols_list,"/Applications/Polyspace/R2020a/extern/lib/maci64/cppMexFunction.map" /var/folders/8q/gj54rs5s6cv3whdzmhkf79_m0000gn/T/mex_1719808412277515_56763/correspondPixels.o /var/folders/8q/gj54rs5s6cv3whdzmhkf79_m0000gn/T/mex_1719808412277515_56763/cpp_mexapi_version.o -L"/Applications/Polyspace/R2020a/bin/maci64" -lmx -lmex -lmat -L"/Applications/Polyspace/R2020a/extern/bin/maci64" -lMatlabDataArray -lMatlabEngine -o correspondPixels.mexmaci64
error using mex
Undefined symbols for architecture x86_64:
"matchEdgeMaps(Matrix const&, Matrix const&, double, double, Matrix&, Matrix&)",
referenced from:
_mexFunction in correspondPixels.o
"Matrix::data()", referenced from:
_mexFunction in correspondPixels.o
"Matrix::Matrix(int, int, double*)", referenced from:
_mexFunction in correspondPixels.o
"Matrix::Matrix()", referenced from:
_mexFunction in correspondPixels.o
"Matrix::~Matrix()", referenced from:
_mexFunction in correspondPixels.o
"Matrix::numel() const", referenced from:
_mexFunction in correspondPixels.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
有人知道如何解决这个问题吗?也许我没有包含一些库来链接这些函数,但是我如何才能找到哪些库呢?我不知道。谢谢任何人能给我的帮助。答案在“帮助”吗?谢谢你的建议。我试图将libmex.dylib复制到脚本的文件夹中,但也得到了相同的错误,但也非常感谢:)很抱歉听到这个消息。那我就不知道了。