You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SDL窗口正常打开但printf无输出的问题求助

问题解答

printf无输出的原因

  • 标准输出缓冲机制:printf默认采用行缓冲模式,当输出内容没有换行符\n时,数据会暂存在缓冲区中,不会立即输出到控制台。你的代码中所有printf("Test")都未添加换行符,加上程序在主循环中持续运行,缓冲区一直未被刷新,导致看不到输出。
    解决办法:
    • 在每个printf后添加fflush(stdout);强制刷新缓冲区:
      printf("Test");
      fflush(stdout);
      
    • 给输出内容加上换行符:
      printf("Test\n");
      
  • SDL输出重定向:SDL初始化后可能会修改标准输出的指向,将其重定向到空设备或日志文件,导致控制台无法捕获printf输出。这种情况下可以改用SDL自带的日志函数SDL_Log,它会直接输出到CLion的运行日志窗口:
    SDL_Log("Test");
    

链接器跳过不兼容库的原因

这些警告是因为你的CLion使用的是自带的64位MinGW工具链,但系统中同时存在一个32位MinGW(路径为C:/MinGW/)。链接器在搜索依赖库时,优先找到了32位的库文件,而32位库与64位编译目标不兼容,因此会跳过这些库,随后自动去寻找兼容的64位库。

从编译日志的Build finished可以看出,链接最终成功完成,所以这些警告不会影响程序的正常运行,和printf无输出的问题没有直接关联。

如果想消除这些警告,可以:

  • 从系统环境变量中移除32位MinGW的路径,避免链接器搜索到不兼容的库
  • 在CMake配置中明确指定CLion自带的64位MinGW库路径

内容的提问来源于stack exchange,提问作者herrsilas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 03:03:09