2015-01-20 3 views
3
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 

Результат:Как связать статическую библиотеку с помощью cl.exe? (Указание библиотека времени исполнения)

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 

Как указать библиотека времени исполнения?

+0

[Как что] (https://msdn.microsoft.com/en- нас/библиотека/2kzt1wy3.aspx) – Drop

ответ

0

Возможно, вам понадобится многопоточная динамическая версия версии библиотеки времени исполнения. Используйте флаг/MD. См. here для получения дополнительной информации о флагах, которые контролируют, с какой версией библиотеки времени выполнения она связана.

Проблема заключается в том, что sfml-graphics-s.lib связан с многопотоковой, динамической версией выпуска библиотеки времени выполнения, тогда как в командной строке указывается ссылка на многопоточную статическую версию версии этой библиотеки (вы, re с помощью переключателя/MT). Замените/MT/MD и конфликт должен быть разрешен.

0

Если в настройках проекта вы выбрали MT_StaticRelease, любая используемая вами библиотека также должна использовать этот параметр. К сожалению, SFML скомпилирован с MD_DynamicRelease (самый распространенный и безопасный выбор), так как библиотеки eXpl0it3r в/lib. Однако eXpl0it3r также предоставляет библиотеки SFML скомпилированные с MT_StaticRelease

Кроме того мне нужно связать 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