|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
前言1 N7 E, v" | H8 ^# m4 m
最近需要用到COCO的matlab api,但是github上的master分支最近删除了maskApi.mexa64文件。一种方法当然是找找别人原来fork的cocoapi,我想自己编译生成。
5 Z( o" ]: Q* k) U2 N9 ~! }! l+ p1 W
2 Y$ [; P+ [% N/ E2 }编译器准备
8 H" K% R8 _9 p; V编译的时候需要用到mex,但是matlab 2016b支持的gcc编译器是4.9.x,而ubuntu 14.04的gcc版本是4.8.x,因此需要首先下载一下gcc 4.9 。( `$ d2 E0 M/ _2 D1 F0 o9 J6 T
" [8 E! y# D, K2 R! n' i2 n! z0 G编译# t% c( V0 J$ |* W- B, H1 e2 [
设置好编译器之后,下载github上的cocoapi-master,解压,然后我们需要编译的其实是两个文件(在MatlabAPI/private目录下面):gasonMex.cpp以及maskApiMex.c
* [, \3 c! { m! t* e! h
$ R! _/ U4 g/ ?3 ]7 D4 f, B/ n对应的编译方法其实在MatlabAPI目录下的gason.m以及MaskApi.m中有写。7 G [1 F) A8 l5 P3 y
: Q' r" T1 y4 m: B
- # 编译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');) f0 O3 O. `- a0 h
' r2 W+ c- O% ]- b& Q" n
+ U8 G0 Q+ n n& o& P& ~
& E+ u/ g7 H0 f( U+ j% H, ]0 i
- # 编译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');
& g2 `1 F7 [! Q$ X
}( h5 G* n" E# b1 z; l. o
8 c, A) l# U8 L) P4 R
( B. I( I+ Y' p9 T5 g2 g4 o编译的时候可能会提醒需要添加’fPIC’,直接在’-std=xxx’后面添加’-fPIC’即可。
. j2 |" d8 [& n编译完成之后,就可以生成gasonMex.mexa64以及maskApiMex.mexa64两个文件了。
2 w# X) |; _+ u% Z: ?$ A! ]; Z. ^' ^2 [$ ~' r1 Z+ k F. S/ E- G6 D
编译完成之后记得把系统默认的gcc切换回4.8版本。, V* d m1 c' T
+ s" E0 p* c G3 r
$ }2 { O/ l2 U/ G; Y1 B& u
e6 m$ `9 m8 \5 U& ^ G; _$ ]( P |
|