Mac编译Android版MAME生成.so文件时遇权限拒绝错误求助
解决编译imame4all时
file2str: Permission denied的问题 你在编译imame4all的Reloaded分支时碰到的这个权限错误,根源是复制到obj目录的file2str工具没有可执行权限,下面给你几个实用的解决办法:
方法1:直接给目标文件添加执行权限
在终端里先给file2str加上可执行权限,再重新编译:
chmod +x obj/droid-ios/mame/build/file2str make
方法2:修改Makefile的复制命令以保留权限
错误日志里的复制命令cp -R prec-build/file2str obj/droid-ios/mame/build,默认情况下可能会丢失文件的执行权限。你可以打开项目的Makefile,找到这一行,修改为带-p参数的命令(-p会保留文件的权限、时间戳等属性):
cp -Rp prec-build/file2str obj/droid-ios/mame/build
保存修改后的Makefile,再重新执行make即可。
方法3:提前给源文件添加执行权限
也可以先给prec-build目录下的源file2str添加权限,这样复制后目标文件会自动继承这个权限:
chmod +x prec-build/file2str make
补充说明
macOS的文件系统在复制文件到自动生成的临时目录(比如这里的obj目录)时,偶尔会出现权限位丢失的情况,以上几种方法都能针对性解决这个问题。如果还是遇到权限相关的错误,可以检查一下当前用户对项目目录的读写权限是否充足。
内容的提问来源于stack exchange,提问作者Cloud.Chase
相关产品推荐
相关产品推荐

