Mingw-w64 - printf不起作用

时间:2013-10-26 16:21:54

标签: c++ ffmpeg console mingw mingw-w64

首先,我想根据我的要求修改ffplay。然后我注意到我的构建中的原始ffplay无法播放一些视频文件,但它没有向控制台写任何消息。然后我注意到ffmpeg在没有params的情况下运行时也没有写任何用法消息。但它的确有效。 如果我从终端运行它就像异步运行一样!终端只显示下一行。我的意思是它要求下一个命令。但ffmpeg进程在任务管理器中可见,它将输出的视频文件写入我所要求的内容!

我创建了以下源文件。我修改了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;
}

之后我使用MinGW-w64和qmake 创建了真正的 hello world应用程序而没有额外的库。而它的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

1 个答案:

答案 0 :(得分: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