c++ - ld:未找到架构 x86_64 的符号 clang:错误
问题描述
我正在尝试使用 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: @loader_path/libmex.dylib
Referenced from:
/Users/test/EdgeDetection/eval/edges/private2/correspondPixels.mexmaci64
Reason: image not found
所以我尝试使用来编译对应的Pixels.cc文件
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)
有人知道如何解决这个问题吗?也许我没有包含一些链接到这些函数的库,但我怎么能找到哪些库?我不知道。感谢任何人提供的任何帮助。
解决方案
推荐阅读
- go - Scanf 值在终端中作为命令执行
- python - 模型运行预测时出错
- node.js - 即使在终端关闭后也保持 webpack dev-server 运行
- css - 为什么 max-width 设置固定元素的宽度?
- mysql - Laravel 让 MySQL 在 Eloquent 模型中查询 Builder 语句
- git - 如何在git中检测新分支是否有提交?
- python - 如何根据熊猫中的另一个值更改数据框中的值?
- django - 如何在 django 中运行脚本 shell
- audio - 对于某些视频,从视频命令中提取音频失败
- php - laravel 5.6 中的全球价值