2013-10-26 59 views
2

首先,我想根据自己的需求修改ffplay。然后我注意到我的内建原版ffplay无法播放某些视频文件,但它没有向控制台写入任何消息。然后我注意到,当我运行它没有参数时,ffmpeg也不写任何用法消息。但它的工作。 如果我从终端运行它就像异步运行!终端只显示下一行。我的意思是它要求下一个命令。但ffmpeg进程在任务管理器中是可见的,它将输出的视频文件写入我请求的内容!Mingw-w64 - printf不起作用

我创建了以下源文件。我修改了Makefile。所以它以同样的方式构建了exe文件。我不知道它是如何的。

#include <SDL.h> 
#include "cmdutils.h" 

const char program_name[] = "hello"; 
const int program_birth_year = 2013; 

void show_help_default(const char *opt, const char *arg) 
{ 
    printf("zxcvbnm\n"); 
} 

int main(int argc, char **argv) 
{ 
    printf("1234567890\n"); 
    return 0; 
} 

而在此之后,我创建现实的Hello World应用程序使用MinGW-W64和qmake的无需额外ENY库。它的printf不起作用。

我想防止这种行为。

我想让printf以传统方式工作。

如何我建立的FFmpeg:

PKG_CONFIG_PATH=/home/developer/workspace/MinGW32fs/lib/pkgconfig/ \ 
SDL_CONFIG=/home/developer/workspace/MinGW32fs/bin/sdl-config \ 
./configure \ 
    --prefix=/home/developer/workspace/MinGW32fs \ 
    --extra-ldflags="-L/home/developer/workspace/MinGW32fs/lib" \ 
    --extra-cflags="-I/home/developer/workspace/MinGW32fs/include" \ 
    --arch=x86 --target-os=mingw32 --cross-prefix=i686-w64-mingw32- \ 
    --pkg-config=pkg-config --enable-libtheora --enable-libvorbis --enable-libvpx \ 
    --enable-outdev=sdl --enable-shared --disable-static \ 
    --disable-doc --disable-manpages --disable-podpages 

make 

回答

2

解决了!

由于某种原因,您必须明确指定您制作控制台应用程序。

在QMAKE的HelloWorld:

CONFIG += console 

在FFmpeg的configure脚本这是一个额外的ldflag console

PKG_CONFIG_PATH=/home/developer/workspace/MinGW32fs/lib/pkgconfig/ \ 
SDL_CONFIG=/home/developer/workspace/MinGW32fs/bin/sdl-config \ 
./configure \ 
    --prefix=/home/developer/workspace/MinGW32fs \ 
    --extra-ldflags="-L/home/developer/workspace/MinGW32fs/lib -Wl,-subsystem,console" \ 
    --extra-cflags="-I/home/developer/workspace/MinGW32fs/include" \ 
    --arch=x86 --target-os=mingw32 --cross-prefix=i686-w64-mingw32- \ 
    --pkg-config=pkg-config --enable-libtheora --enable-libvorbis --enable-libvpx \ 
    --enable-outdev=sdl --enable-shared --disable-static \ 
    --disable-doc --disable-manpages --disable-podpages