博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Echoprint系列--编译
阅读量:4313 次
发布时间:2019-06-06

本文共 3529 字,大约阅读时间需要 11 分钟。

近期要做一个音乐相关的client。当中一个功能是音乐识别。搜索了一些资料选择Echoprint来开发。Echoprint是开源免费的,并且多种client都支持能节约非常多时间,今天主要下载和编译源代码以及測试。

(备注:我的开发环境是Mac,所以以下以及之后都是Mac的环境)

1、官网

官网地址:http://echoprint.me

2、安装依赖环境

  • 首先安装HomeBrew
  • 安装依赖库 

    brew install ffmpeg boost taglib

    安装的文件夹都在

    /usr/local/Cellar

3、下载源代码

git clone -b release-4.12 git://github.com/echonest/echoprint-codegen.git

下载完源代码后进入src并打开Makefile

adsl-172-10-1-12:~ zhangjie$ cd echoprint-codegen

adsl-172-10-1-12:echoprint-codegen zhangjie$ cd src/

adsl-172-10-1-12:src zhangjie$ vim Makefile 

改动当中变量BOOST_CFLAGS为你当前安装的boost文件夹

BOOST_CFLAGS=-I/usr/local/Cellar/boost/1.58.0/include

改动

 34 libcodegen: $(MODULES_LIB)

 35 ifeq ($(UNAME),Darwin)

 36         libtool -dynamic -flat_namespace -install_name libcodegen.$(VERSION).dylib -lSystem -compatibility_version $(VERSION_COMPAT) \

 37                 -macosx_version_min 10.6 -current_version $(VERSION) -o libcodegen.$(VERSION).dylib -undefined suppress \

 38             $(MODULES_LIB) -framework vecLib -framework Accelerate

 39 else

 40         $(CXX) -shared -fPIC -Wl,-soname,$(SONAME) -o $(LIBNAME).$(VERSION) $(MODULES_LIB) -lz

 41 endif

假设38行中有
-framework vecLib则去掉

变为例如以下:

 34 libcodegen: $(MODULES_LIB)

 35 ifeq ($(UNAME),Darwin)

 36         libtool -dynamic -flat_namespace -install_name libcodegen.$(VERSION).dylib -lSystem -compatibility_version $(VERSION_COMPAT) \

 37                 -macosx_version_min 10.6 -current_version $(VERSION) -o libcodegen.$(VERSION).dylib -undefined suppress \

 38             $(MODULES_LIB)  -framework Accelerate

 39 else

 40         $(CXX) -shared -fPIC -Wl,-soname,$(SONAME) -o $(LIBNAME).$(VERSION) $(MODULES_LIB) -lz

 41 endif

4、编译

adsl-172-10-1-12:src zhangjie$ vim Makefile 

adsl-172-10-1-12:src zhangjie$ make

g++ -Wall -I/usr/local/Cellar/boost/1.58.0/include `taglib-config --cflags` -fPIC -O3 -DBOOST_UBLAS_NDEBUG -DNDEBUG -c -o Codegen.o Codegen.cxx

In file included from Codegen.cxx:12:

In file included from ./AudioBufferInput.h:14:

./AudioStreamInput.h:53:10: warning: 'StdinStreamInput::ProcessFile' hides overloaded virtual function [-Woverloaded-virtual]

    bool ProcessFile(const char* filename){ return ProcessStandardInput();}

         ^

./AudioStreamInput.h:26:18: note: hidden overloaded virtual function 'AudioStreamInput::ProcessFile' declared here: different number of parameters (3 vs 1)

    virtual bool ProcessFile(const char* filename, int offset_s=0, int seconds=0);

                 ^

1 warning generated.

g++ -Wall -I/usr/local/Cellar/boost/1.58.0/include `taglib-config --cflags` -fPIC -O3 -DBOOST_UBLAS_NDEBUG -DNDEBUG -c -o Fingerprint.o Fingerprint.cxx

g++ -Wall -I/usr/local/Cellar/boost/1.58.0/include `taglib-config --cflags` -fPIC -O3 -DBOOST_UBLAS_NDEBUG -DNDEBUG -c -o MatrixUtility.o MatrixUtility.cxx

g++ -Wall -I/usr/local/Cellar/boost/1.58.0/include `taglib-config --cflags` -fPIC -O3 -DBOOST_UBLAS_NDEBUG -DNDEBUG -c -o SubbandAnalysis.o SubbandAnalysis.cxx

In file included from SubbandAnalysis.cxx:8:

./AudioStreamInput.h:53:10: warning: 'StdinStreamInput::ProcessFile' hides overloaded virtual function [-Woverloaded-virtual]

    bool ProcessFile(const char* filename){ return ProcessStandardInput();}

         ^

./AudioStreamInput.h:26:18: note: hidden overloaded virtual function 'AudioStreamInput::ProcessFile' declared here: different number of parameters (3 vs 1)

    virtual bool ProcessFile(const char* filename, int offset_s=0, int seconds=0);

                 ^

1 warning generated.

g++ -Wall -I/usr/local/Cellar/boost/1.58.0/include `taglib-config --cflags` -fPIC -O3 -DBOOST_UBLAS_NDEBUG -DNDEBUG -c -o Whitening.o Whitening.cxx

posted on
2017-04-30 18:14 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lxjshuju/p/6790006.html

你可能感兴趣的文章
influxdb 命令行输出时间为 yyyy-MM-dd HH:mm:ss(年月日时分秒)的方法
查看>>
已知子网掩码,确定ip地址范围
查看>>
判断时间或者数字是否连续
查看>>
docker-daemon.json各配置详解
查看>>
Docker(一)使用阿里云容器镜像服务
查看>>
FFmpeg 新旧版本编码 API 的区别
查看>>
RecyclerView 源码深入解析——绘制流程、缓存机制、动画等
查看>>
Android 面试题整理总结(一)Java 基础
查看>>
Android 面试题整理总结(二)Java 集合
查看>>
学习笔记_vnpy实战培训day02
查看>>
学习笔记_vnpy实战培训day03
查看>>
VNPY- VnTrader基本使用
查看>>
VNPY - CTA策略模块策略开发
查看>>
VNPY - 事件引擎
查看>>
MongoDB基本语法和操作入门
查看>>
学习笔记_vnpy实战培训day04_作业
查看>>
OCO订单(委托)
查看>>
学习笔记_vnpy实战培训day06
查看>>
回测引擎代码分析流程图
查看>>
Excel 如何制作时间轴
查看>>