|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
前言
/ a5 ]! J, c i7 C% w最近需要用到COCO的matlab api,但是github上的master分支最近删除了maskApi.mexa64文件。一种方法当然是找找别人原来fork的cocoapi,我想自己编译生成。. c# ]. x# {) z3 U' i
4 B2 j% e) b% @9 ?( B# B
编译器准备
0 J! I/ N# n e5 ]: Z编译的时候需要用到mex,但是matlab 2016b支持的gcc编译器是4.9.x,而ubuntu 14.04的gcc版本是4.8.x,因此需要首先下载一下gcc 4.9 。 r& S6 u9 e n; k. Y2 y
1 q" f4 u+ ~. W* W0 ]
编译7 U9 Y1 d& ?: F/ ^* [
设置好编译器之后,下载github上的cocoapi-master,解压,然后我们需要编译的其实是两个文件(在MatlabAPI/private目录下面):gasonMex.cpp以及maskApiMex.c( s! X: F8 z: f7 B, T
$ q8 L0 S" w4 b, T. W2 u
对应的编译方法其实在MatlabAPI目录下的gason.m以及MaskApi.m中有写。
' u* s% l5 n. | b+ s+ r; r* T. Z) {* j* E3 L c# ?
- # 编译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');
4 R* n+ t; ~( k% r ( {& a# w( @" V+ B& R! z
# t3 L4 K4 \ X+ x
5 [, L/ l, s/ L
- # 编译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');
( O; \0 ?3 H1 F" F; \' N
, ]4 ~ K4 c) B! |/ v+ c- m# B( c9 F9 O$ `5 Y
) G( n& U1 g- a' j$ Z+ W8 E编译的时候可能会提醒需要添加’fPIC’,直接在’-std=xxx’后面添加’-fPIC’即可。 # @) I7 W, c: ~) J5 S2 Q! @. b; E) B# b
编译完成之后,就可以生成gasonMex.mexa64以及maskApiMex.mexa64两个文件了。
0 c8 m! R) `# ^6 w+ E
, u& k; r8 F: `+ w编译完成之后记得把系统默认的gcc切换回4.8版本。0 ^ d8 ^, q) ]0 ~- d7 }
0 d6 K7 g! H( C% F- R! s
6 f5 c* ~: E; W/ P
, V3 a- {2 A1 u, k6 ? |
|