2010-01-25 82 views
1

好的。我试图在Windows上编译以下应用程序(Segmenter,请参阅步骤3)。如何在Windows上编译这个

我检查了源代码并更改了引用,以便一切都很好。它基本上是一个文件应用程序,带有对ffmpeg的引用。

makefile读取:

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

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

+0

是的,抓住gcc。你可以选择MingW或Cygwin – Earlz 2010-01-25 20:01:59

+0

IMO,编译一个开源的应用程序会落入SuperUser的土地。 – 2010-01-25 20:08:43

+2

关于在SO上使用gcc和相关工具有几千个问题 - 我从未见过一个问题转移到SU。 – 2010-01-25 20:12:34

回答

2

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

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

1

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

2

不要考虑使用cygwin,除非你正在进行的项目绝对需要它。从http://tdragon.net/recentgcc下载MinGW版本的GCC plus binutils,如make。我从来没有听说过GCC的版本,在你的问题中提供了一个链接 - MinGW是这个领域的主流项目。

1
cl -c -W4 segmenter.c -Fosegmenter.obj 
link segmenter.obj avformat avcodec avutil bz2 faac mp3lame x264 faad 

虽然我不确定如何处理-lm和-lz。实际上,所有这些图书馆都需要由MSVC编译器构建才能正常工作。

1

您应该可以获得您已有的use cl.exe。您可以使用/Wall而不是-Wall。 (W控制警告是如何产生的。)

R塞缪尔克拉特科给出了你应该知道的其余部分。