cl -MT -DSFML_STATIC main.cpp freetype.lib gdi32.lib glew.lib jpeg.lib openal32.lib opengl32.lib sfml-audio-s.lib sfml-graphics-s.lib sfml-network-s.lib sfml-system-s.lib sfml-window-s.lib sndfile.lib winmm.lib
结果是:
sfml-graphics-s.lib<Color.cpp.obj> : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in main.obj
如何指定RuntimeLibrary?
答案 0 :(得分:0)
您可能需要运行时库的多线程动态发布版本。使用/ MD标志。有关控制要链接的运行时库版本的标志的更多信息,请参阅here。
问题是sfml-graphics-s.lib链接到运行时库的多线程动态发布版本,而命令行指示链接到该库的多线程,静态,发布版本(你是使用/ MT开关)。将/ MT替换为/ MD,应解决冲突。
答案 1 :(得分:0)
如果在项目设置中选择MT_StaticRelease,则您使用的任何库也必须使用此参数。不幸的是,SFML是使用MD_DynamicRelease(最常见和安全的选择)编译的,因此作为/ lib中的eXpl0it3r库。但是,eXpl0it3r还提供了使用MT_StaticRelease
编译的SFML库
此外,我需要链接user32.lib和advapi32.lib
cl -EHsc -FC -Zi -MT -DSFML_STATIC main.cpp advapi32.lib freetype.lib gdi32.lib glew.lib jpeg.lib openal32.lib opengl32.lib sfml-audio-s.lib sfml-graphics-s.lib sfml-network-s.lib sfml-system-s.lib sfml-window-s.lib sndfile.lib user32.lib winmm.lib