sdl编译问题 sdl printf没有输出 sdl编译错误

本文介绍了在Windows环境下使用命令行编译SDL项目时遇到的问题及解决方法,包括将/ML改为/MD,添加/subsystem:"windows"选项以及链接问题。当遇到printf等无法输出到控制台时,需将/subsystem改为/subsystem:"CONSOLE"。确保所有模块编译参数一致,避免链接错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在windows下使用命令行编译


编译

-------linux

 如果在程序中用到了SDLSDL_image库进行编程时,那么在编译该文件时,需要加上: 

`sdl-config --cflags --libs`

同时还要加载SDL_image库:-lSDL_image 

g++ file.cpp `sdl-config --cflags --libs` -lSDL_image


-------------windows

编译时候必须把/ML改成/MD,用命令行编译必须加上/MD

还要加上/subsystem:"windows"

如:

cl sdltest.c SDL.lib SDLmain.lib  /O2 /MD /link /subsystem:"windows"

如果遇到:fatal error LNK1104: cannot open file 'libc.lib'  

加入/nodefaultlib:libc

如:cl agg_platform_support.cpp aa_demo.cpp agg_slider_ctrl.cpp SDL.lib SDLmain.lib agg.lib /O2 /MD -I".\include" /link /subsystem:"windows" /nodefaultlib:libc


另外如果想使用printf或者fprintf(stderr...这些东西,/subsystem:"windows"应该改为/subsystem:"CONSOLE"   这问题浪费了我很多时间,详见:

How can I get console output instead of stdout.txt and stderr.txt?

http://sdl.beuc.net/sdl.wiki/FAQ_Console


所有模块如SDL.lib SDLmain.lib 你的程序 都必须使用同一个编译参数 /MD或者/MT, 否则出现各种问题



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值