|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
前言
2 H9 ^5 U2 S! W: M A9 {. ~最近需要用到COCO的matlab api,但是github上的master分支最近删除了maskApi.mexa64文件。一种方法当然是找找别人原来fork的cocoapi,我想自己编译生成。
3 \2 W4 x% x* [" ~7 M2 p6 U% D- S ~0 l
编译器准备5 n' A M4 V* I4 L u+ d0 k
编译的时候需要用到mex,但是matlab 2016b支持的gcc编译器是4.9.x,而ubuntu 14.04的gcc版本是4.8.x,因此需要首先下载一下gcc 4.9 。
- P1 w# C, x5 V- y4 l
! d' `) @; D1 ?- A# t F( Y4 h+ ?! A编译: U: m2 O8 z P- w' M& m$ e
设置好编译器之后,下载github上的cocoapi-master,解压,然后我们需要编译的其实是两个文件(在MatlabAPI/private目录下面):gasonMex.cpp以及maskApiMex.c
; G5 ?- |* Y3 @7 Z' z2 T) J- G r
5 n& _8 s1 q5 M% C6 e对应的编译方法其实在MatlabAPI目录下的gason.m以及MaskApi.m中有写。6 X# ?0 [* A b+ E3 E. F# j
8 q' d5 F# ?7 @$ H5 Q" 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');& T( H/ \. Y3 w. E0 ^4 B) _+ a
|. o" h; p! M4 m* X! q
5 {& } _2 h7 m
4 x' w- \: f0 T- # 编译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');! e% O( A( p( v) |: Q& G
7 `. f% Q6 l+ m; Y* c6 O: t5 f2 M, N+ {1 y
9 o7 |0 T0 e. A$ J p
编译的时候可能会提醒需要添加’fPIC’,直接在’-std=xxx’后面添加’-fPIC’即可。
D6 j5 ^& E6 l- |编译完成之后,就可以生成gasonMex.mexa64以及maskApiMex.mexa64两个文件了。
) b$ E* W8 P9 ]6 W; N+ a
, F1 G; ^/ A$ A0 M, q编译完成之后记得把系统默认的gcc切换回4.8版本。0 n5 I+ n( l+ E! @, S" l* i
7 O$ F1 k- ^- L' z. U7 c5 F
" a0 C: J3 ^0 T0 @. w
+ g* L# H) {8 ^" F) x) G$ d: \# K
|
|