【问题标题】:How to compile this on Windows如何在 Windows 上编译它
【发布时间】:2010-01-25 19:59:59
【问题描述】:

好的。我正在尝试在 Windows 上编译以下应用程序(Segmenter,请参见步骤 3)。

我检查了源代码并更改了引用,这样一切都会好起来的。它基本上是一个单文件应用程序,引用了 ffmpeg。

makefile 写着:

gcc -Wall -g segmenter.c -o segmenter -lavformat -lavcodec -lavutil -lbz2 -lm -lz -lfaac -lmp3lame -lx264 -lfaad

我有 Visual C++ 编译器,但我不知道如何使用该编译器编译上述行,还是应该使用 Gcc for Windows

【问题讨论】:

  • 是的,抓住 gcc。您可以从 MingW 或 Cygwin 中进行选择
  • IMO,编译开源应用程序属于超级用户的土地。
  • 关于在 SO 上使用 gcc 和相关工具的问题有数千个 - 我从未见过一个迁移到 SU。
  • @Neil:当然。 “我如何引用这些库”完全是一个 SO 问题,但编译带有指示如何编译的 README 文件的应用程序基本上是安装的事情。事实上,这是一个灰色地带。反正不是什么大问题。

标签: c++ gcc


【解决方案1】:

该行表示一个非常简单的编译。它使用一个标准参数编译文件(-g 用于使用调试符号进行编译,在 MSVC 上是 /Zi)。

但它与很多库链接(这就是所有的 -l 选项)。我认为其中两个是标准压缩库(bz2 和 z),因此您需要先构建这些库。

【讨论】:

    【解决方案2】:

    除非您正在处理的项目绝对需要它,否则不要考虑使用 cygwin。从http://tdragon.net/recentgcc 下载 MinGW 版本的 GCC 和 binutils,例如 make。我从未听说过您在问题中提供链接的 GCC 版本 - MinGW 是该领域的主流项目。

    【讨论】:

      【解决方案3】:

      除非您有要链接的库的源代码,否则您可能必须使用编译它们的编译器。

      【讨论】:

        【解决方案4】:
        cl -c -W4 segmenter.c -Fosegmenter.obj
        link segmenter.obj avformat avcodec avutil bz2 faac mp3lame x264 faad 
        

        我不确定这与 -lm 和 -lz 有什么关系。 事实上,所有这些库都需要由 MSVC 编译器构建才能正常工作。

        【讨论】:

          【解决方案5】:

          你应该可以use cl.exe 你已经拥有了。您可以使用 /Wall 代替 -Wall 。 (W 控制如何生成警告。)

          R Samuel Klatchko 提供了您应该知道的其余内容。

          【讨论】:

            猜你喜欢
            • 2012-03-14
            • 2012-10-19
            • 2017-02-21
            • 2013-09-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多