|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
前言1 `' q' V3 A, j8 ?; l
最近需要用到COCO的matlab api,但是github上的master分支最近删除了maskApi.mexa64文件。一种方法当然是找找别人原来fork的cocoapi,我想自己编译生成。0 H, `) a) i! {+ C1 b% g! v
% u8 o6 x. `/ f! g1 t2 V
编译器准备
) B: r, r2 O. W1 ]2 Z C: W, {9 i编译的时候需要用到mex,但是matlab 2016b支持的gcc编译器是4.9.x,而ubuntu 14.04的gcc版本是4.8.x,因此需要首先下载一下gcc 4.9 。
5 \% v: q0 {( U" T/ ^& I, ^; M; W/ o5 m& @* f' K y, z L
编译4 X) E7 u1 N, N/ g
设置好编译器之后,下载github上的cocoapi-master,解压,然后我们需要编译的其实是两个文件(在MatlabAPI/private目录下面):gasonMex.cpp以及maskApiMex.c5 @ d3 E2 }1 A3 e# L2 Y" x
3 e8 _1 I' R! X3 e- g. X+ r: v$ k
对应的编译方法其实在MatlabAPI目录下的gason.m以及MaskApi.m中有写。
% e5 s0 h" I$ N5 _0 `! X0 j( k2 a* i( m) R8 C) I
- # 编译gason.cpp文件,把CXXFLAGS换成g++-4.9的目录,比如/usr/bin/g++-4.9
- mex('CXXFLAGS=\$CXXFLAGS -std=c++11 -Wall','-largeArrayDims',...
- 'private/gasonMex.cpp','../common/gason.cpp',...
- '-I../common/','-outdir','private');
" R7 y" q; k5 x/ B+ i 8 a7 N6 z$ C" Y" `: O
! y6 q6 Y% O( \; N) w |$ u; `% V( {/ C: j& k0 C7 ?, k
- # 编译maskApi.c文件, 把CFLAGS换成gcc-4.9的目录,比如/usr/bin/gcc-4.9
- mex('CFLAGS=\$CFLAGS -Wall -std=c99','-largeArrayDims',...
- 'private/maskApiMex.c','../common/maskApi.c',...
- '-I../common/','-outdir','private');; P4 c& Q* l! g' F' ~& q$ o& |
|. N3 r# C) D7 Q2 H- R0 F
! m9 m% G. V& w# Q( p7 \( H* B8 S4 u- J8 w! N' w' }9 E1 e# C
编译的时候可能会提醒需要添加’fPIC’,直接在’-std=xxx’后面添加’-fPIC’即可。
f3 W" E# }+ z5 H4 H+ o! X3 ]/ v编译完成之后,就可以生成gasonMex.mexa64以及maskApiMex.mexa64两个文件了。
2 _9 ~ E$ T! u- O' O. U+ V
% _4 F* I# d* O8 q% `. C编译完成之后记得把系统默认的gcc切换回4.8版本。8 `( o& v& I$ L! a3 ?! F
/ j: V& C. S) L* V1 W/ i
6 Z2 }, k' X/ e+ k( L1 Q4 e1 {! l' F! o. M/ H' c: }
|
|