Mac

记录Mac系统下构建FFmpeg(-Wl,rpath不支持)及依赖库libxml2遇到的两个问题

最近在Mac系统下尝试编译FFmpeg源码,虽然由于都是nix系的系统,比Win下编译方便很多,但还是遇到一些由于系统差异导致的问题。首先是依赖库libxml2编译时,提示:

-bash: libtoolize: command not found

这个问题,简单调查后发现是由于Mac系统已经存在libtool这个工具,但是功能不同,而相同功能的工具程序换了个名字,叫glibtool,可以通过brew安装,参考这个地址:https://stackoverflow.com/questions/15448582/installed-libtool-but-libtoolize-not-found

glibtool可用后,增加个符号链接,或者改下libxml2的构建脚本,就可以build成功了。

第二个要记录的问题是FFmpeg在编译时,由于使用的是Xcode命令行工具安装的clang,无法识别gcc的“-Wl,rpath=”链接命令,用于指定rpath。

这个问题参考这个github上的issue描述:https://github.com/klee/klee/issues/591,将指定rpath链接参数的写法换成“-Wl,-rpath xxx”即可,多个rpath路径时可以参考下Xcode项目设置里增加rpath后生成的编译链接命令写法。

给我13年的Mac Book Air换了个nvme硬盘

13年买的港版13寸MBA A1466一直用到21年现在,好在当时略有远见,在标配4G内存的时代选择了定制的8G内存版本,才算勉强支撑了这么多年,但当时的硬盘还是选的128G版本,用到现在已经捉襟见肘,而且随着Mac OSX系统不断更新,感觉系统、软件使用起来速度越来越慢,而且还容易发生卡顿。

其实20年初时考虑过换个10代酷睿的新版Mac Book,但选择困难症纠结配置一直纠结到了年底,结果苹果发布了ARM版的Mac CPU M1,一时间好评不断,号称各种完爆Intel版的Mac,好在当时没入10代Mac Book,但参考当年入初代锐龙时的被坑经验,决定还是先观望下M1,毕竟这个变化不小,很多软件都需要对ARM版Mac系统做出适配。

不过此时我的老MBA已经基本硬盘满到快无法使用了,看了下某宝上256G、512G的MBA原装硬盘,售价比普通m.2硬盘基本上要贵一倍,而且都是拆机二手盘,也不知道会不会有问题。幸运的是,在万能的某宝上发现了这个神器:

Continue reading…

熟悉一下Xcode下Mac App动态链接库的runpath

Xcode虽然已经用过很久了,但是很少接触Mac App的开发,尤其是对于Mac App的动态链接库用法更是知之甚少(大部分时间都是在做iOS开发而iOS又不支持动态链接库⊙﹏⊙b汗),果然在研究FMOD Studio的跨平台音效库时遇到了问题…先是在win32下写了一段测试代码,配合Studio工具做出的bank完成了基本加载、播放等基本逻辑,准备上Mac平台试验一下,结果一通忙活include和lib后,编译链接没问题了,停掉虾米的推荐准备听听Mac版的声音效果如何,结果一运行程序就崩溃了,看了下日志输出:

dyld: Library not loaded: @rpath/libfmodL.dylib
Referenced from: /Users/wzkres/Library/Developer/Xcode/DerivedData/CCTechDemo-gdcppdyfmrhlhzhidvykxyjrcvwo/Build/Products/Debug/CCTechDemo Mac.app/Contents/MacOS/CCTechDemo Mac
Reason: image not found

感觉有点类似win32下的没找到动态链接库的dll…不过既然是没见过的提示,还是搜索学习一下吧。

Continue reading…

解决Chrome浏览器在Mac下开启新标签后出现404的问题

可能不是只在Mac下才会出这个问题,现象就是打开Chrome后新标签页原本应该显示的常用网站和搜索页面显示不出来了,而是个这样的404页面:
10dfa9ec8a13632789b4c96b938fa0ec08fac709

用开发者工具看了一下,是这个地址报404: www.google.com/_/chrome/newtab?espv=210&ie=UTF-8,而且非常奇怪的是如果先“科学上网”的话,就不会出这个404,一切正常…

Continue reading…

在Windows下删除Mac系统硬盘中的200mb EFI分区

把一块曾经装过Mac系统的硬盘挂到Win上用,在设备管理中可以删除默认200mb EFI分区以外的其他分区,虽然这200mb也不算多,但看着还是别扭,查了下发现可以通过如下操作进行删除

打开cmd命令行,运行命令diskpart,进入提示符后先执行list disk,然后看下显示出得列表中哪个编号的硬盘是这个包含EFI分区的,然后执行 select disk N,把N替换为刚才查到的对应磁盘的索引号,选中磁盘后,执行clean,清除掉整个磁盘的分区,然后再次打开磁盘管理工具,会提示进行初始化操作,选MBR还是GPT,选好后就可以使用完整硬盘空间了!

修复由于误改系统盘权限导致的白苹果Mac无法启动的问题

由于一次误改Mac系统盘根目录权限,导致重启时一直停在灰苹果界面,虽然前面的“转菊花”可以通过,但是始终不能看到桌面,解决方法如下:

按照Apple说明,开机时按Command+R进入修复模式,打开磁盘工具,修复了系统盘的权限和错误,以为就可以了,结果发现重启后问题依旧!再次查找资料, Continue reading…