【问题标题】:when i build ffmpeg with cygwin there is an error occurs. How can i solve this?当我用 cygwin 构建 ffmpeg 时,会发生错误。我该如何解决这个问题?
【发布时间】:2020-05-12 01:40:41
【问题描述】:

build_android.sh 文件

  1. 路径 NDK=C:/Users/asus/AppData/Local/Android/Sdk/android-ndk-r21
  2. 我该如何解决这个问题?

【问题讨论】:

标签: ffmpeg android-ndk cygwin


【解决方案1】:

您的 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//'

【讨论】:

  • 我也运行了这三个命令但是,它出现了同样的错误。 1. dos2unix build_android.sh , 2. chmod +x build_android.sh , 3 ./build_android.sh.
  • @PradeepSimba 你能检查文件在dos2unix 之后是否被更改(二进制)?可能是这样,在您的系统上,某个代理将文件恢复到 windows 样式的行结尾;它可能是您的版本控制。
  • 我的文件结束行没有改变。那么,我该如何解决呢?
  • build_android.sh 调用 configure 以及可能的其他脚本。此外,./configure 中有一个棘手的部分,它会在源文件中搜索各种字符串,这可能会生成以\r 结尾的字符串,从而破坏构建。我已更新答案以反映这些问题。
  • 你给两个零钱。但是,我在哪里可以找到这个。
猜你喜欢
  • 2021-10-10
  • 1970-01-01
  • 2013-11-23
  • 2021-07-01
  • 1970-01-01
  • 2020-09-07
  • 1970-01-01
  • 1970-01-01
  • 2015-06-13
相关资源
最近更新 更多