Missing symbol required by MATLAB

3 次查看(过去 30 天)
chriskjou
chriskjou 2018-8-21
评论: dpb 2018-8-30
I downloaded AFQ https://github.com/yeatmanlab/AFQ/wiki with vistasoft and spm8 on my macOS Sierra MATLAB R2017a. I have been trying to run the example code, but the following error is returned:
"
Missing symbol '_malloc' required by
'/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio->/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis->/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices->/System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC->/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata->/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices->/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation->/Applications/MATLAB_R2017a.app/bin/maci64/libmwnativestrings.dylib->/Applications/MATLAB_R2017a.app/bin/maci64/libmwsettingscore.dylib->/Applications/MATLAB_R2017a.app/bin/maci64/libmwservices.dylib->/Applications/MATLAB_R2017a.app/bin/maci64/libmex.dylib->/Users/christinejou/Documents/MathWorks/R2017a/archives/common/matlab/vistasoft/mrDiffusion/src/dtiSplitTensor.mexmaci64'
"
... (and many lines of missing symbol like the one above for '_memcpy', '_memmove', etc.)
"
Error in dtiEig (line 65)
[eigVec,eigVal] = dtiSplitTensor(Y);
Error in dtiComputeFA (line 44)
[eigVec, eigVal] = dtiEig(eigVal);
Error in AFQ_WholebrainTractography (line 84)
fa = dtiComputeFA(dt.dt6);
Error in AFQ_example (line 23)
wholebrainFG = AFQ_WholebrainTractography(dt,'test');
"
I've checked to make sure that I have added the paths to the AFQ/vistasoft/spm8 correctly and tried recompiling the MEX files, but I still get the same error. I have been trying to troubleshoot this for a while and think this may be a MATLAB version compatibility problem, but I'm unsure how to continue.
Does anyone have some pointers on how to fix this? Thanks again and any help would be much appreciated.
  9 个评论
Walter Roberson
Walter Roberson 2018-8-30
The message from mex -setup is informational, not an error. It tells you what has been configured, how to choose a configuration; and gives a message warning that if you were using code from about a decade ago that you could have problems.
dpb
dpb 2018-8-30
I would think you would need to recompile everything that is part of the mex file(s) you're trying to use, yes, to have everything consistent. Otherwise, whatever references there are to the runtime is based on whatever compiler/release those modules were compiled with and that could be either somewhat different in internal naming conventions or interface.
I "know nuthink!" about either the example you're trying to compile nor C++ in general so I have no knowledge of the specific symbol as far as where it might be in the system; once past the most basic of C standard libraries, I'm totally at sea.
Again, I'd suggest going back to the basics first...can you get any C++ mex file to compile/link; then begin to add the complexities of whatever libraries are being used in the particular package.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Write C Functions Callable from MATLAB (MEX Files) 的更多信息

产品


版本

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by