文档章节

Ubuntu 下编译Game Music Emu

phoromeon
 phoromeon
发布于 2015/12/28 23:24
字数 694
阅读 75
收藏 1

    这算是我在OsChina发表的第一篇博文吧,标志着以后我将在这里安营驻扎了。

    以前在Windows系统下玩得比较high,偶尔喜欢整点新鲜的。好久以前,就用起了foobar2000,他的界面如下,

怀着对nsf、spc的热爱,就给他装各种插件。

    现在由于工作需要,很多工作需要在Ubuntu上面完成,天天就是码代码。天天这样也不行吧,得找点新鲜玩意,让自己工作生活两不误。于是也想找一个类似foobar2000这样的软件,可是左找右找,愣是没找着。虽说可以用wine加载,但感觉没意思,而且担心用wine会加重系统负担。正好前段时间要配置ffmpeg,需要到官网下载,无意间就看到了一个叫gme的源码包,当时一高兴就把它给下下来了。但是本人对cmake是小白一枚,左捣鼓右捣鼓,弄了好几天,后来没办法,只好回到官网找教程,才发现自己智商+情商捉急,网上有教程还非要自己整。

    原文地址,即编译过程在:https://bitbucket.org/mpyne/game-music-emu/wiki/Home

    考虑到很多人看到英文教程会头疼,所以把具体的编译过程Ctrl+C Ctrl+V了。

    下面:

    需要的工具,c、c++编译器(废话)、cmake 2.6.x以上版本。

    首先,去zeranoe下一个开源包,地址:http://ffmpeg.zeranoe.com/builds/

如上图,找到gme-0.6.0.tar.xz,点击直接下载。

找到下载的源码包所在目录,

输入命令

tar -xvf gme-0.6.0.tar.xz

解压,然后进入这个目录,

cd gme-0.6.0

mkdir build

cd build

cmake (空格) ../ (空格) -DCMAKE_INSTALL_PREFIX=/usr/local  #不需要添加额外的选项

然后就是make and sudo make install 了。

以上是为系统配置了gme的链接库还有pkgconfig配置文件,可以在目录/usr/local/lib目录下查看,如果有libgme.so 和libgme.pc 说明安装成功。下面就可以编译player了。

接着进入build的下级目录player,由于之前已经cmake过了,所以后面只要make和sudo make install

然后执行sudo cp gme_player /usr/local/bin

这里的gme_player就是编译生成的可执行文件,拷贝到系统目录,以后只要在命令行输入

gme_player path/filename

就可以实现播放Game Music了,效果如图


对于nsf、gbs等多音轨的文件,按左右键切换音轨,1、2、3、4分别开启或关闭相应声道。

如果认真读代码的话,可以应用Qt Creator作一个交互式的界面,这样就不用每次想听音乐的时候都打开命令行了。感兴趣的朋友可以试试。

© 著作权归作者所有

共有 人打赏支持
phoromeon
粉丝 1
博文 4
码字总数 2998
作品 0
宁波
私信 提问
新 0-Day 漏洞或将给 Linux 桌面发行版带来浩劫

Linux 的各个发行版都一直强调安全及其相关元素,比如防火墙、渗透测试、沙盒、无痕上网和隐私等等,但事实上可能并没有想象中的那么安全。安全研究员 Chris Evans 公开了其发现的针对 Linu...

王练
2016/12/18
2.5K
6
Open Emu 1.0 发布,OS X 游戏模拟器

OS X 游戏模拟器 Open Emu 发布了 1.0 版本,下载地址:https://github.com/OpenEmu/OpenEmu/releases OpenEmu 是一项开源计划,目的是将游戏模拟带入OS X,使用Cocoa、Core Animation和Qua...

oschina
2013/12/24
1K
3
OSX游戏模拟器--Open Emu

OpenEmu 是一项开源计划,目的是将游戏模拟带入OS X,使用Cocoa、Core Animation和Quartz等现代OS X技术,使用Sparkle进行自动升级。 Open Emu使用模块化构架,支持游戏引擎插件,这意味着O...

匿名
2013/04/10
14.9K
3
时隔 3 年,音频播放器 DeaDBeeF 发布 1.8.0 版本

DeaDBeeF 发布了 1.8.0 版本,DeaDBeeF(0xDEADBEEF)是一个 GNU/Linux、*BSD、OpenSolaris、macOS 和其它类 UNIX 操作系统的模块化音频播放器。 DeaDBeeF 的特点是可以播放各种类型音频,而...

h4cd
04/13
0
0
Ubuntu16.04引导界面美化(burg)

今天尝试安装了一下Ubuntu16.04后,脑子一热就试了一下引导界面美化(burg)。以前只是看过有这些美化界面操作,却没试过,终于实现了一下。 效果图比自带的grub2好看太多了 burg是基于grub2...

爱笑的痴迷者
2016/06/25
2.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

dockerfile 镜像构建(1)

通用dockerfile 利用已经编译好的.jar 来构建镜像。要构建的目录如下: [root@iZuf61quxhnlk9m2tkx16cZ demo_jar]# docker build -t demo:1 . 运行镜像: [root@iZuf61quxhnlk9m2tkx16cZ de...

Canaan_
今天
2
0
Redis radix tree源码解析

Redis实现了不定长压缩前缀的radix tree,用在集群模式下存储slot对应的的所有key信息。本文将详述在Redis中如何实现radix tree。 核心数据结构 raxNode是radix tree的核心数据结构,其结构体...

阿里云云栖社区
今天
13
0
vue import 传入变量

在做动态添加component的时候,传入变量就会报错,出现以下错误信息: vue-router.esm.js?fe87:1921 Error: Cannot find module '@/components/index'. at eval (eval at ./src/components ......

朝如青丝暮成雪
今天
3
0
Flutter开发 Dio拦截器实现token验证过期的功能

前言: 之前分享过在Android中使用Retrofit实现token失效刷新的处理方案,现在Flutter项目也有“token验证过期”的需求,所以接下来我简单总结一下在Flutter项目中如何实现自动刷新token并重...

EmilyWu
今天
9
0
final Map可以修改内容,final 常量不能修改

1.final Map 可以put元素,但是不可以重新赋值 如: final Map map = new HashMap(); map = new HashMap();//不可以 因为栈中变量map引用地址不能修改 2.final str = “aa”; str = "bb";/......

qimh
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部