2017-01-28 19 views
0

Я запускаю следующий код на своей машине с Windows10 с API версии 1.19 от Intel Media SDK.Ошибка в visual studio 2015, которая уходит в 2012 году

#include<stdio.h> 
#include"mfxvideo++.h" 

void main() { 
    printf("this is a new program using intel media sdk"); 

    mfxSession SWsess; 
    mfxVersion SWver = {0,1}, ver; 
    mfxStatus sts; 

    sts = MFXInit(MFX_IMPL_SOFTWARE, &SWver, &SWsess); 

    if (MFX_ERR_NONE == sts) { 
     MFXQueryVersion(SWsess, &ver); 
     printf("Implementation version: %d.%d and API version: %d.%d", SWver.Major, SWver.Minor, ver.Major, ver.Minor); 
    } 

    MFXClose(SWsess); 

    getchar(); 
} 

Я сделал проект в Visual Studio 2015, но получил следующие ошибки

Тяжесть Код ошибки
Описание
Project
путь файла
программы Линия

Ошибки были написанный в формате выше.

Error LNK1120 
2 unresolved externals 
ScreenCapture 
~\Visual Studio\ScreenCapture\x64\Debug\ScreenCapture.exe 
1 

Error LNK2019 
unresolved external symbol __imp_printf referenced in function main 
ScreenCapture 
~\Visual Studio\ScreenCapture\ScreenCapture\main.obj 
1 

Error LNK2019 
unresolved external symbol swscanf_s referenced in function "private: bool __cdecl MFX::MFXPluginsInFS::ParseKVPair(wchar_t *,wchar_t *,class MFX::PluginDescriptionRecord &)" ([email protected]@[email protected]@[email protected]@@Z) 
ScreenCapture 
~\Visual Studio\ScreenCapture\ScreenCapture\libmfx.lib(mfx_plugin_hive.obj) 
1 

Warning LNK4098 
defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library 
ScreenCapture 
~\Visual Studio\ScreenCapture\ScreenCapture\LINK 
1 

Однако в Visual Studio 2012 вышеупомянутый код работает нормально. Пожалуйста, сообщите, что мне нужно сделать, чтобы обновить мой проект до Visual Studio 2015?

Я столкнулся с LNK2019 в Visual Studio 2017RC (Refer here), поэтому я вернулся к Visual Studio 2015 и 2012. Решения, доступные для ошибок на том или другом форуме, до сих пор не работали на меня. Для предупреждения LNK4098 я не мог заключить, какие библиотеки игнорировать.

+0

*** конфликты defaultlib 'LIBCMT' с использованием других LIBS; use/NODEFAULTLIB: library *** означает, что у вас конфликт CRT. Убедитесь, что вы используете версию SDK, совместимую с вашим компилятором. – drescherjm

ответ

2

VS 2015 и VS 2017 используют Universal CRT, который не является бинарным или ссылкой, совместимым со старыми реализациями Visual Studio CRT. Вообще говоря, ЭЛТ несовместимы между основной версией компилятора.

IOW: эта версия Intel Media SDK не поддерживает VS 2015