|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
前言
- {; \7 x+ y# C; E# [* a最近需要用到COCO的matlab api,但是github上的master分支最近删除了maskApi.mexa64文件。一种方法当然是找找别人原来fork的cocoapi,我想自己编译生成。
) H& L/ W# \- m6 j6 i5 Q9 q" ^- a9 h) E" R9 e
编译器准备
7 P; E q1 t, g3 ?编译的时候需要用到mex,但是matlab 2016b支持的gcc编译器是4.9.x,而ubuntu 14.04的gcc版本是4.8.x,因此需要首先下载一下gcc 4.9 。
1 d) G3 P2 \* }/ A( z) D3 S
' a7 {) b; o- b9 j编译
+ S- O* | I. J设置好编译器之后,下载github上的cocoapi-master,解压,然后我们需要编译的其实是两个文件(在MatlabAPI/private目录下面):gasonMex.cpp以及maskApiMex.c
z: ]6 D$ j% _5 z2 k! a" c) E6 k- l% x. ]( q1 m
对应的编译方法其实在MatlabAPI目录下的gason.m以及MaskApi.m中有写。
& b2 O" i4 H! B; m1 n; R6 n0 j {6 m' 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');9 u C. @3 v4 I0 \/ s
* L( ^1 @0 Z0 U7 o* F1 @2 d
5 I7 {( w: m# q
* ] A* D3 K* n9 n! k/ F' W- # 编译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');
: y' M `3 g9 U* `& a5 T0 a . c! Y' d z) Q& q
* S6 Q. W J( l3 T9 [; m8 P% [6 W9 K1 n* h3 i* ?7 Y% o( T, k' q
编译的时候可能会提醒需要添加’fPIC’,直接在’-std=xxx’后面添加’-fPIC’即可。
/ `3 D3 O0 S9 A: C0 z编译完成之后,就可以生成gasonMex.mexa64以及maskApiMex.mexa64两个文件了。
' H9 o& \- F- \! ]; k, B& p' G) J: e2 Q+ Z- n u
编译完成之后记得把系统默认的gcc切换回4.8版本。
* [, W& L- D# L) b0 n& G- s( z: p2 r1 ^4 C& a8 i! I: N
! G# Y" r" D ~
8 U, m6 ?# K) t# T% a8 l |
|