|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
前言
( L4 [% C4 Y; z5 S! J最近需要用到COCO的matlab api,但是github上的master分支最近删除了maskApi.mexa64文件。一种方法当然是找找别人原来fork的cocoapi,我想自己编译生成。, G( ?' b& R. {7 Z/ x
/ U C( C# }2 `# g* k/ q' B# G# [
编译器准备' m! g: z' G6 G( {: @
编译的时候需要用到mex,但是matlab 2016b支持的gcc编译器是4.9.x,而ubuntu 14.04的gcc版本是4.8.x,因此需要首先下载一下gcc 4.9 。
+ }4 S" O3 K1 a1 f7 }( S/ s- ]2 i' h3 }& v) Z. Y# F. B1 g; J- p
编译7 }- X/ i* s F6 x; J: ~, {
设置好编译器之后,下载github上的cocoapi-master,解压,然后我们需要编译的其实是两个文件(在MatlabAPI/private目录下面):gasonMex.cpp以及maskApiMex.c
! R) b, ]4 m0 w- @
' I0 H: ^9 K* Z4 i2 H对应的编译方法其实在MatlabAPI目录下的gason.m以及MaskApi.m中有写。
# K. s6 f+ H4 g3 y: v! [- I4 P9 {7 o
- # 编译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');# x, a/ P. }' Q ^
9 Q) R3 L* w; {- g, r
, G3 r" Q7 M a7 R; S8 D- R) S
{3 z" D7 \1 P3 N7 W; }$ M- # 编译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');
) G, U% n" v) s* }4 Y
: z9 ?7 \" A0 `% n; e" E. v' _
H$ c* n# e+ R, f( z- T. v' {
+ t' [0 m0 i9 u5 ?) c编译的时候可能会提醒需要添加’fPIC’,直接在’-std=xxx’后面添加’-fPIC’即可。
5 X" v2 J" G! [% }/ O% s3 ~3 u) p编译完成之后,就可以生成gasonMex.mexa64以及maskApiMex.mexa64两个文件了。 T1 o& Z; M& Y6 T, D
& w" M4 N2 M& e1 G: z( x2 H编译完成之后记得把系统默认的gcc切换回4.8版本。
q L2 ?: z; r6 c. e) ]" V* D, J- j7 B
5 A! d* P. @- H) b: P, h- Y
8 a* H( Z4 S. y# M! V0 X
|
|