【发布时间】:2020-05-12 01:40:41
【问题描述】:
【问题讨论】:
-
请不要发布代码图片。见How to Ask。
标签: ffmpeg android-ndk cygwin
【问题讨论】:
标签: ffmpeg android-ndk cygwin
您的 build_android.sh 文件具有 Windows 样式的行尾。解决此问题的最简单方法是在 bash 命令行上运行 dos2unix 命令。
另一个需要处理的文件是 ./configure 脚本。确保它是可执行的,并且也有 Unix 风格的行尾。
当您解决了所有这些问题后,您可能会发现脚本仍然无法运行,因为有时它会扫描 C 源代码以生成应构建的模块列表。如果源具有 Windows 样式的行结尾,则此列表中的模块名称可能在末尾具有相同的 \r 字符。
不要绝望:./configure 的简单修复将解决它。以下是两个变化:
@@ -3828,1 +3828,1 @@
- sed -n "s/^[^#]*extern.*$pattern *ff_\([^ ]*\)_$thing;/\1_$out/p" "$file"
+ sed -n "s/^[^#]*extern.*$pattern *ff_\([^ ]*\)_$thing;/\1_$out/p" "$file" | sed 's/\r//'
@@ -3833,1 +3833,1 @@
- sed -n 's/^extern AVFilter ff_[avfsinkrc]\{2,5\}_\([[:alnum:]_]\{1,\}\);/\1_filter/p' $file
+ sed -n 's/^extern AVFilter ff_[avfsinkrc]\{2,5\}_\([[:alnum:]_]\{1,\}\);/\1_filter/p' $file | sed 's/\r//'
【讨论】:
dos2unix 之后是否被更改(二进制)?可能是这样,在您的系统上,某个代理将文件恢复到 windows 样式的行结尾;它可能是您的版本控制。
\r 结尾的字符串,从而破坏构建。我已更新答案以反映这些问题。