MATLAB Answers


Error using codegen - R2016b on Ubuntu14.04

Asked by Seong Hun Lee on 1 Oct 2016
Latest activity Edited by Seong Hun Lee on 2 Oct 2016
When I run "FaceTrackingKLTpackNGoExample.m", I get the following error
>> FaceTrackingKLTpackNGoExample
-> Generating Code (it may take a few minutes) ....
??? Build error: Build failed for project 'FaceTrackingKLTpackNGo_kernel'. See the Target Build Log in
the report for further details.
Error in ==> FaceTrackingKLTpackNGo_kernel Line: 1 Column: 1
Code generation failed: View Error Report
Error using codegen
Error in FaceTrackingKLTpackNGoExample (line 70)
codegen(codegenArgs{:}, fileName);
When I click "View Error Report", I see the following
/usr/bin/ld: HostLib_rtw.o: undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/ error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
gmake: *** [/tmp/tp44a3c425_46b9_48ab_b357_fe1e097b3d62/codegen/FaceTrackingKLTpackNGo_kernel] Error 1
Has anyone ever experienced the same problem? Any solution please?


Sign in to comment.

1 Answer

Answer by Walter Roberson
on 1 Oct 2016

You may need to add the "dl" library to be linked. If you are working from the command line that would be by adding -ldl
I see in the error message a reference to /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/ . The first .. would take you up to where 4.8 was a child; the second .. would take you up to where x86_64-linux-gnu was a child; the third .. would take you up to where gcc was a child, so that would seem to resolve to /usr/lib/x86_64-linux-gnu/ . I wonder if that actually exists or if the file is really in /usr/lib/gcc/x86_64-linux-gnu/ ? Is /usr/lib/gcc/x86_64-linux-gnu/ perhaps a symlink that resolves to /usr/lib/x86_64-linux-gnu/ ?


The problem is that running the script gives me an error in line 70 when the "codegen" function is first used:
67: %%Create the Packaged Zip-file
68: % Invoke codegen command with packNGo function call.
69: fprintf('-> Generating Code (it may take a few 70: minutes) ....\n');
70: codegen(codegenArgs{:}, fileName);
So the line 83 is never reached in the first place...
These are the other directory addresses which I can print:
visiondemo_dir: "/usr/local/MATLAB/R2016b/toolbox/vision/visiondemos"
currentDir: "/home/seonghunlee/OpenSourceCode/MATLAB_code/MATLAB_CV_DEMO"
codegenOutDir: "/tmp/tpe5458449_5603_4a0d_b59a_e86c0f8e0489/codegen"
Look in the directory codegenOutDir -- you might have to look a directory down from there to find the Makefile
Unfortunately, there is no Makefile in codegenOutDir.... :(
This it the directory structure:
|-- codegenOutDir
|-- buildinfo.mat
|-- codegen
|--Other bunch of generated .c, .h, .o files

Sign in to comment.