|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
前言
& o* r r+ Y F4 r4 {最近需要用到COCO的matlab api,但是github上的master分支最近删除了maskApi.mexa64文件。一种方法当然是找找别人原来fork的cocoapi,我想自己编译生成。1 Z8 \" x- v- E3 G
' i( S% t4 I/ Y* C编译器准备! `3 ^0 o5 ]# m' W" d2 f
编译的时候需要用到mex,但是matlab 2016b支持的gcc编译器是4.9.x,而ubuntu 14.04的gcc版本是4.8.x,因此需要首先下载一下gcc 4.9 。) a* A+ G7 E" Y" H
- H: r- b0 R3 ?; `编译
% g2 l4 `8 e% J设置好编译器之后,下载github上的cocoapi-master,解压,然后我们需要编译的其实是两个文件(在MatlabAPI/private目录下面):gasonMex.cpp以及maskApiMex.c
3 M5 C: Y; p4 x0 N- N0 c) l. |! \0 X# ?6 w) G% E
对应的编译方法其实在MatlabAPI目录下的gason.m以及MaskApi.m中有写。
) N6 p: U; i1 z" }' b7 V8 q3 K6 i* t& u1 X. {! W N+ ^
- # 编译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');
! R( F) X6 i2 j; q1 a 9 b+ T1 {8 m! o( y/ U# s) I
* } G7 G* Z0 M+ Y' {9 n! q0 M( R/ z
- # 编译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');( z/ M2 o& \0 ^" d- q/ C+ f& m
! L% x% B9 u `; U& @1 g* R
: u0 d# A* [# ^2 X) E4 l# D/ I# \% P$ j( k
编译的时候可能会提醒需要添加’fPIC’,直接在’-std=xxx’后面添加’-fPIC’即可。 * g5 i" f0 F" t+ H3 i/ @. t
编译完成之后,就可以生成gasonMex.mexa64以及maskApiMex.mexa64两个文件了。
8 k5 R# i) P( x0 P! I7 w* ^, j' J' v& g( \
编译完成之后记得把系统默认的gcc切换回4.8版本。
|/ c( M% f6 @/ w C8 R- e! F4 F
! g; ~; K' h2 K- @8 x) E, [8 G) X
" {: r9 O2 C( w' J |
|