Cygwin中执行Makefile调用Python脚本提示文件不存在,如何修复?
问题修复方案
问题原因
Cygwin的bash shell无法识别Windows风格的盘符路径(如C:/Android/Sdk/...),会将其当作相对路径拼接到当前工作目录下,导致生成错误的脚本路径/c/Projects/.../C:/Android/Sdk/...。
修复方法
方法1:在Makefile中用cygpath转换路径
修改Makefile中的规则,通过cygpath -u工具将Windows风格的$(NDK_PATH)转换为Cygwin兼容的POSIX路径:
$(OUTDIR)/toolchain: `cygpath -u $(NDK_PATH)`/build/tools/make_standalone_toolchain.py \ --api=24 \ --arch=arm64 \ --install-dir=$@ \ --verbose=2
cygpath -u会把C:/xxx格式的路径转换为/c/xxx或/cygdrive/c/xxx的POSIX格式,让bash能正确识别路径。
方法2:直接使用Cygwin风格的NDK_PATH
在定义NDK_PATH时,直接使用Cygwin支持的POSIX路径:
# 在Makefile中定义NDK_PATH NDK_PATH := /c/Android/Sdk/ndk/25.1.8937393
或者在Cygwin终端中先设置环境变量:
export NDK_PATH=/c/Android/Sdk/ndk/25.1.8937393
这样Makefile调用脚本时,路径本身就是Cygwin可识别的格式,不会出现拼接错误。
内容的提问来源于stack exchange,提问作者zynovij
相关产品推荐
相关产品推荐

