我在Windows10计算机上使用API版本1.19的Intel Media SDK运行以下代码。
#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中制作了该项目,但收到了以下错误
严重性错误代码
说明
项目
文件路径
程序行
错误已采用上述格式编写。
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 &)" (?ParseKVPair@MFXPluginsInFS@MFX@@AEAA_NPEA_W0AEAVPluginDescriptionRecord@2@@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?
我在Visual Studio 2017RC(Refer here)中遇到了LNK2019,所以我回到了Visual Studio 2015和2012.可用于此论坛或其他论坛的错误的解决方案直到现在才对我有效。为了警告LNK4098,我无法断定要忽略的库。
答案 0 :(得分:2)
VS 2015和VS 2017使用Universal CRT,它不是二进制或与旧的Visual Studio CRT实现链接兼容。一般来说,CRT在主要版本的编译器之间不兼容。
IOW:该版本的英特尔媒体SDK不支持VS 2015。