【问题标题】:Where is a binary file once it's been built (for ffmpeg)?构建后的二进制文件在哪里(对于 ffmpeg)?
【发布时间】:2010-09-19 06:12:25
【问题描述】:

我需要为 Mac 构建 ffmpeg,以便在 Java 应用程序中将 MOV 转换为 FLV。我制作并安装了 LAME,然后安装了 FFMPEG,但我不知道应该抓取哪些文件以包含在 Java 应用程序中。什么是二进制文件?我从 ffmpegX 的源中获取的先前版本大小为 10mb,但我 /usr/local/bin 中的文件只有 0.1mb。这是正确的文件,还是我需要包含什么?

我不太了解需要在终端中输入的任何内容,因此请原谅缺乏技术术语!

【问题讨论】:

    标签: macos gcc ffmpeg


    【解决方案1】:

    简答:/usr/local/bin 中的文件要么是真正的二进制文件,要么是指向真正二进制文件的软链接。如果您运行ls -l /usr/local/bin,任何链接都将显示带有指向其目标位置的箭头。但 pszilard 可能是对的,该文件可能是实际的二进制文件,它是动态链接到库代码的。

    长答案:如果您从源代码编译,那么您运行以下三个命令

    ./configure
    make
    make install
    

    第一个创建一个名为config.mak 的配置文件。在该文件的顶部附近,您会看到类似于以下内容的行:

    prefix=/usr/local
    LIBDIR=$(DESTDIR)${prefix}/lib
    SHLIBDIR=$(DESTDIR)${prefix}/lib
    INCDIR=$(DESTDIR)${prefix}/include
    BINDIR=$(DESTDIR)${prefix}/bin
    

    DESTDIR 是可选的;除非您使用附加参数运行make install,否则这是无关紧要的。 BINDIR 是实际安装位​​置。在我的系统(雪豹)上是/usr/local/bin/

    如果您仍然遇到问题,请不要安装该版本。如果你跑

    make clean
    make
    

    二进制文件将在您的构建文件夹中。

    不要使用 MacPorts 或 Fink。如果您自己从源代码编译,从长远来看,您会更快乐。如果您坚持使用包管理器,请尝试 Homebrew Link>。

    【讨论】:

    • 只是想知道如果你想要一堆 gnu 工具,同时使用其中一些工具而不是 Mac 版本(例如 ls),你会怎么做?在这种情况下,手动逐个编译所有依赖项会很痛苦。 homebrew 有依赖管理吗?
    • 我不确定,我自己没有使用自制软件。我在 MacPorts 方面有过很多糟糕的体验,无法切换到手动编译,并且没有足够的动力切换到更自动化的东西。
    • @AndrewF 如果您有时间,能否提供更详细的答案以从源代码构建 ffmpeg?我有兴趣了解细节。谢谢
    【解决方案2】:

    到目前为止,我还不是 Mac 专家,但我有一些提示。如果您使用动态链接构建库,而另一个是静态链接,则可能会解释大小差异。

    至于位置,你用了什么? MacPorts、Fink 还是来源?如果您从源代码构建取决于您使用的内容:) MacPorts 和 Fink 有其二进制文件的特定位置(我不记得了,但文档应该有信息,否则大 G 有它;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      • 2011-08-02
      • 2023-03-20
      • 2018-01-23
      • 1970-01-01
      相关资源
      最近更新 更多