Error with codegen/mex (error status code 2)
古いコメントを表示
Hi, I am trying to compile code that I know has compiled successfully on another computer. I am running Matlab 2014b on Ubuntu 12.04. Any ideas on how to fix this?
I am running the following code:
t = coder.typeof(0, [1e6 3],1);
C = coder.typeof(0, [1e6 3],1);
vt = coder.typeof(0, [1e6 3],1);
R = coder.typeof(0, [1e6 9],1);
EV = coder.typeof(0, [1e6 3 3],1);
codegen CalRigidEnergy3d -args { EV,t,vt,C,R }
This refers to the file CalRigidEnergy3d:
function E=CalRigidEnergy3d(EV,t,U,C,R)
E=0;
Eij = zeros(3,1);
for i=1:size(t,1)
rot=reshape(R(i,:),[3 3]);
for j=0:2
j1=j+1;
j2=mod(j+1,3)+1;
j3=mod(j+2,3)+1;
idx2=t(i,j2);
idx3=t(i,j3);
Uij=U(idx3,:)-U(idx2,:);
Eij(1,1)=EV(i,j1,1);
Eij(2,1)=EV(i,j1,2);
Eij(3,1)=EV(i,j1,3);
E=E+C(i,j1)*norm(Uij'-rot*Eij)^2;
end
end
Running mex -setup returns the following:
MEX configured to use 'gcc' for C language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the
new API. You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
To choose a different language, select one from the following:
mex -setup C++
mex -setup FORTRAN
The error given is:
??? Build error: Compilation returned error status code 2. See the target build log in the report for further details.
Error in ==> CalRigidEnergy3d Line: 1 Column: 1
Code generation failed: Open error report.
Error using codegen (line 146)
The Build Log is:
1 /usr/bin/gcc -c -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -D_GNU_SOURCE -DMATLAB_MEX_FILE -DMX_COMPAT_32 -O -DNDEBUG -I "/usr/local/MATLAB/R2014b/simulink/include" -I "/usr/local/MATLAB/R2014b/toolbox/shared/simtargets" -I "/home/ari" -I "/home/ari/codegen/mex/CalRigidEnergy3d" -I "/home/ari/codegen/mex/CalRigidEnergy3d/interface" -I "/usr/local/MATLAB/R2014b/extern/include" -I "." "CalRigidEnergy3d_data.c"
2 /usr/bin/gcc -c -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -D_GNU_SOURCE -DMATLAB_MEX_FILE -DMX_COMPAT_32 -O -DNDEBUG -I "/usr/local/MATLAB/R2014b/simulink/include" -I "/usr/local/MATLAB/R2014b/toolbox/shared/simtargets" -I "/home/ari" -I "/home/ari/codegen/mex/CalRigidEnergy3d" -I "/home/ari/codegen/mex/CalRigidEnergy3d/interface" -I "/usr/local/MATLAB/R2014b/extern/include" -I "." "CalRigidEnergy3d_initialize.c"
3 /usr/bin/gcc -c -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -D_GNU_SOURCE -DMATLAB_MEX_FILE -DMX_COMPAT_32 -O -DNDEBUG -I "/usr/local/MATLAB/R2014b/simulink/include" -I "/usr/local/MATLAB/R2014b/toolbox/shared/simtargets" -I "/home/ari" -I "/home/ari/codegen/mex/CalRigidEnergy3d" -I "/home/ari/codegen/mex/CalRigidEnergy3d/interface" -I "/usr/local/MATLAB/R2014b/extern/include" -I "." "CalRigidEnergy3d_terminate.c"
4 /usr/bin/gcc -c -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -D_GNU_SOURCE -DMATLAB_MEX_FILE -DMX_COMPAT_32 -O -DNDEBUG -I "/usr/local/MATLAB/R2014b/simulink/include" -I "/usr/local/MATLAB/R2014b/toolbox/shared/simtargets" -I "/home/ari" -I "/home/ari/codegen/mex/CalRigidEnergy3d" -I "/home/ari/codegen/mex/CalRigidEnergy3d/interface" -I "/usr/local/MATLAB/R2014b/extern/include" -I "." "CalRigidEnergy3d.c"
5 /usr/bin/gcc -c -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -D_GNU_SOURCE -DMATLAB_MEX_FILE -DMX_COMPAT_32 -O -DNDEBUG -I "/usr/local/MATLAB/R2014b/simulink/include" -I "/usr/local/MATLAB/R2014b/toolbox/shared/simtargets" -I "/home/ari" -I "/home/ari/codegen/mex/CalRigidEnergy3d" -I "/home/ari/codegen/mex/CalRigidEnergy3d/interface" -I "/usr/local/MATLAB/R2014b/extern/include" -I "." "interface/_coder_CalRigidEnergy3d_api.c"
6 /usr/bin/gcc -c -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -D_GNU_SOURCE -DMATLAB_MEX_FILE -DMX_COMPAT_32 -O -DNDEBUG -I "/usr/local/MATLAB/R2014b/simulink/include" -I "/usr/local/MATLAB/R2014b/toolbox/shared/simtargets" -I "/home/ari" -I "/home/ari/codegen/mex/CalRigidEnergy3d" -I "/home/ari/codegen/mex/CalRigidEnergy3d/interface" -I "/usr/local/MATLAB/R2014b/extern/include" -I "." "CalRigidEnergy3d_emxutil.c"
7 /usr/bin/gcc -c -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -D_GNU_SOURCE -DMATLAB_MEX_FILE -DMX_COMPAT_32 -O -DNDEBUG -I "/usr/local/MATLAB/R2014b/simulink/include" -I "/usr/local/MATLAB/R2014b/toolbox/shared/simtargets" -I "/home/ari" -I "/home/ari/codegen/mex/CalRigidEnergy3d" -I "/home/ari/codegen/mex/CalRigidEnergy3d/interface" -I "/usr/local/MATLAB/R2014b/extern/include" -I "." "interface/_coder_CalRigidEnergy3d_mex.c"
8 /usr/bin/gcc -c -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -D_GNU_SOURCE -DMATLAB_MEX_FILE -DMX_COMPAT_32 -O -DNDEBUG -I "/usr/local/MATLAB/R2014b/simulink/include" -I "/usr/local/MATLAB/R2014b/toolbox/shared/simtargets" -I "/home/ari" -I "/home/ari/codegen/mex/CalRigidEnergy3d" -I "/home/ari/codegen/mex/CalRigidEnergy3d/interface" -I "/usr/local/MATLAB/R2014b/extern/include" -I "." "interface/_coder_CalRigidEnergy3d_info.c"
9 /usr/bin/gcc -Wl,--version-script,CalRigidEnergy3d_mex_mex.map -pthread -Wl,--no-undefined -Wl,-rpath-link,/usr/local/MATLAB/R2014b/bin/glnxa64 -shared -L/usr/local/MATLAB/R2014b/bin/glnxa64 -lmx -lmex -lmat -lm -lstdc++ -o CalRigidEnergy3d_mex.mexa64 CalRigidEnergy3d_data.o CalRigidEnergy3d_initialize.o CalRigidEnergy3d_terminate.o CalRigidEnergy3d.o _coder_CalRigidEnergy3d_api.o CalRigidEnergy3d_emxutil.o _coder_CalRigidEnergy3d_mex.o _coder_CalRigidEnergy3d_info.o -lemlrt -lcovrt -lut -lmwmathutil -lmwblas
10 _coder_CalRigidEnergy3d_api.o: In function `c_emlrt_marshallIn':
11 _coder_CalRigidEnergy3d_api.c:(.text+0xb0): undefined reference to `mxGetData'
12 _coder_CalRigidEnergy3d_api.o: In function `CalRigidEnergy3d_api':
13 _coder_CalRigidEnergy3d_api.c:(.text+0x2cb): undefined reference to `mxGetData'
14 _coder_CalRigidEnergy3d_api.c:(.text+0x427): undefined reference to `mxGetData'
15 _coder_CalRigidEnergy3d_mex.o: In function `mexFunction':
16 _coder_CalRigidEnergy3d_mex.c:(.text+0x3e): undefined reference to `mexAtExit'
17 _coder_CalRigidEnergy3d_info.o: In function `b_emlrt_marshallOut':
18 _coder_CalRigidEnergy3d_info.c:(.text+0x62): undefined reference to `mxGetData'
19 _coder_CalRigidEnergy3d_info.o: In function `emlrtMexFcnProperties':
20 _coder_CalRigidEnergy3d_info.c:(.text+0x8cac): undefined reference to `mxCreateStructMatrix_700'
21 _coder_CalRigidEnergy3d_info.c:(.text+0x8cc7): undefined reference to `mxCreateStructMatrix_700'
22 _coder_CalRigidEnergy3d_info.c:(.text+0x8cd9): undefined reference to `mxCreateLogicalMatrix_700'
23 _coder_CalRigidEnergy3d_info.c:(.text+0x8ce8): undefined reference to `mxCreateString'
24 _coder_CalRigidEnergy3d_info.c:(.text+0x8cfd): undefined reference to `mxSetFieldByNumber_700'
25 _coder_CalRigidEnergy3d_info.c:(.text+0x8d0a): undefined reference to `mxCreateDoubleScalar'
26 _coder_CalRigidEnergy3d_info.c:(.text+0x8d1f): undefined reference to `mxSetFieldByNumber_700'
27 _coder_CalRigidEnergy3d_info.c:(.text+0x8d2c): undefined reference to `mxCreateDoubleScalar'
28 _coder_CalRigidEnergy3d_info.c:(.text+0x8d41): undefined reference to `mxSetFieldByNumber_700'
29 _coder_CalRigidEnergy3d_info.c:(.text+0x8d56): undefined reference to `mxSetFieldByNumber_700'
30 _coder_CalRigidEnergy3d_info.c:(.text+0x8d62): undefined reference to `mxCreateString'
31 _coder_CalRigidEnergy3d_info.c:(.text+0x8d77): undefined reference to `mxSetFieldByNumber_700'
32 _coder_CalRigidEnergy3d_info.c:(.text+0x8d91): undefined reference to `mxSetFieldByNumber_700'
33 _coder_CalRigidEnergy3d_info.c:(.text+0x8da6): undefined reference to `mxSetFieldByNumber_700'
34 collect2: ld returned 1 exit status
35 gmake: *** [CalRigidEnergy3d_mex.mexa64] Error 1
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Algorithm Design Basics についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!