注册 登录
琵琶行论坛 返回首页

robot的个人空间 https://www.ppxclub.com/?104200 [收藏] [复制] [分享] [RSS]

日志

模擬器學習日記 (4) - 設定 MSYS 使用 MAME MinGW package

热度 1已有 952 次阅读2010-2-14 18:16 |个人分类:模擬器研究|

上 MAME 官网 http://mamedev.org/tools/,看了一下编译所需套件(我的电脑是 Vista 32):


下载在这里:http://aarongiles.com/mirror/tools/mingw-mame-w32-20100102.exe
下载了套件 mingw-mame-win32-20100102 (win32),然后勇敢的执行,安装时,指定你的 MinGW 目录

要注意到 MAME 版的 MinGW 执行档的路径,跟 MinGW default 的路径不一样喔
MAME 的 MinGW 的路径是 c:\MinGW\mingw64-w32\bin
官方的 MinGW 的路径 c:\MinGW\bin

原因我猜 MinGW current 的版版太旧了,还是 2008 的版本,没有考虑到 x64 作业系统。这个差异,我们应该可以在 MSYS 的设定档中搞定(通常改变一下设定档,你就可以切换 MinGW 的版本),如果是用 command line,就没那么贴心。

让我们来把 MSYS 设定的比较好用吧。

(1) 先改变 MSYS 的视窗大小,default 80x25 有点太小,把它改成 120x54,执行你桌面上的 MSYS 捷径,你会看到标题为 MINGW32 的视窗,然后在视窗标题左上角,按右键,选预设值,然后设定如下图。这样你的 MinGW shell 视窗,就会有 120x54 这么大,然后会保留 1200 行的内容。


(2) MSYS 是在 Windows 下,模拟 Linux shell 环境,而在 Linux 的环境下,所有的系统资源,都被当成档案,MSYS 自动帮我们产生了以下的路径映射:
c:/msys/1.0  --> /
c:/                 --> /c/
d:/                 --> /d/
.....
z:/                 --> /z/
另外还有一个档案 c:\msys\1.0\etc\fstab 映射了 mingw 的路径。如果日后你有需要,可以添加自己的路径。
c:/mingw       --> /mingw

(3) 因为我们安装了 MAME 版本的 MinGW 套件,所以路径应该跟内定的不一样。可以看到 MSYS 加上了
.  
/usr/local/bin
/mingw/bin
/bin
这四个目录,在 "PATH" 这个环境变数之前,需要改的是 /mingw/bin 这个路径。改在哪里呢?MSYS 执行后,会自动执行 /etc/profile 这个 shell script,所以改 c:\msys\1.0\etc\profile 这个档。所以就把 /mingw/bin 路径改成 /mingw/mingw64-win32/bin 如下图


改完存档,然后重新启动 MSYS。下命令 g++ --version,应该看到 g++ 的版本已经是最新的了。

这篇看起来很复杂,其实照着改只是几个动作而已。

不过不知道有没人想到要问,为何这么大费周章?不是加个路径到系统环境变数 "PATH",就好了吗,干么这么大费周章?看起来也很复杂?

理由:

(1) 想办法让使用环境,跟我在 Linux 上的使用环境接近,这样到时候,我要在 Linux 上编译,只要修改很小的地方。你总不会想说先开发在 Windows 上,然后哪天你的模拟器够呛,出来个牛人帮你 port 到 Linux 上,使用 MSYS 可以在变动幅度最小的情况下,使用相同的工具,make,sed,grep ....让你的程式可以在 Linux 跑

(2) Linux shell 真的太方便了,alias history pushd popd ...... 还有 shell script 可以让你要重复的动作,自动化。

这篇太长了,下次我们再来谈如何设定文字编辑器。

评论 (0 个评论)

小黑屋|手机版|Archiver|琵琶行论坛 ( 赣ICP备12000882号 )

GMT+8, 2020-10-26 08:27 , Processed in 0.013173 second(s), 6 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部