EDA365电子论坛网
标题:
Ubuntu 14.04+MatlabR2016b 编译COCO matlab API
[打印本页]
作者:
thinkfunny
时间:
2020-6-12 16:01
标题:
Ubuntu 14.04+MatlabR2016b 编译COCO matlab API
前言
& p2 {/ F; f, h, X6 y5 X
最近需要用到COCO的matlab api,但是github上的master分支最近删除了maskApi.mexa64文件。一种方法当然是找找别人原来fork的cocoapi,我想自己编译生成。
6 [5 d: A; S% k; ~( A, L
, Y. w. v# @! H2 z. [; I/ a
编译器准备
! V; }% j I! l/ ~2 f
编译的时候需要用到mex,但是matlab 2016b支持的gcc编译器是4.9.x,而ubuntu 14.04的gcc版本是4.8.x,因此需要首先下载一下gcc 4.9 。
: Y+ k* L( K! M6 N: T8 c/ L
; Q# |4 y" X# ~) S" a A: T
编译
; z* f. h' w7 ]1 H; ?/ T; F
设置好编译器之后,下载github上的cocoapi-master,解压,然后我们需要编译的其实是两个文件(在MatlabAPI/private目录下面):gasonMex.cpp以及maskApiMex.c
; i& j- g: {2 P
+ r+ K% w! n9 a# X9 e6 Q( x! ?
对应的编译方法其实在MatlabAPI目录下的gason.m以及MaskApi.m中有写。
) l) n, {2 V% H$ C
: a2 X& ]$ s. Z& N# r* g% 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');
' o3 y$ ]0 k8 H9 I" p
0 W; H( t$ N+ a) ]# l; H' `
5 s5 k/ B6 O3 g3 R+ y
5 O% a) F ^! D# d8 @
# 编译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');
7 P- ~5 B& E( k$ f& b
' f* E: M4 N" _
+ K R% T7 O& a# \" [ G$ ^, S2 a: X
+ l: Z8 ?- K6 r# {: U
编译的时候可能会提醒需要添加’fPIC’,直接在’-std=xxx’后面添加’-fPIC’即可。
+ d0 j: k, G( q4 g9 y
编译完成之后,就可以生成gasonMex.mexa64以及maskApiMex.mexa64两个文件了。
- x% g$ H7 t$ Q# m
2 f4 {1 f r2 Y+ g
编译完成之后记得把系统默认的gcc切换回4.8版本。
- h0 D& Y8 @( J7 r: w
# i. o9 C, t+ b& t
4 K) d6 e- D; ~8 @* W
' \. Z* ?1 m/ d
作者:
NingW
时间:
2020-6-12 17:04
系统默认的gcc切换回4.8版本
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2