Ошибка LNK2019 с использованием visual studio 2017RC
Для приведенного ниже кода я получаю ошибку LNK2019. Составитель не удается распознать MFXInit, MFXClose, MFXQueryVersion. Он не показывает ошибку для других функций в "mfxvideo.h".
#include "mfxvideo.h" #include<stdio.h> //Please refer the mediasdk-man.pdf provided under *\IntelSWTools\Intel(R)_Media_SDK_2016.0.2\doc //The program is meant for educational purposes. At the time it was written the author was learning the... //used API. //Based on **Intel Media SDK** int main() { //Here the version of the API used is defined for the software and hardware version mfxVersion SWversion = { 0,1 }, version, HWversion = { 0,1 }; //Initializing a session. This should be done for all the programs written using this API mfxSession SWsession, HWsession; // is used to monitor the progress of program and analyse errors, if any arise. //Based on the progress we decide the optimal path for progressing our code(With practice... //...this will become clearer) mfxStatus sts; //Setting the value for 'sts' using we initialize the SDK session // takes following arguments (desired implementation[here we have chosen software]... //... , pointer for desired version, pointer for desired session) sts = MFXInit(MFX_IMPL_SOFTWARE, &SWversion, &SWsession); //Now using the 'sts; we check for errors. As mentioned earlier based on the value of sts... //... we allow our program to choose the optimal path for proceeding // signifies that there are no error observed by the variable 'sts' if (MFX_ERR_NONE == sts) { // finds out the implementation version of the SDK for a given session MFXQueryVersion(SWsession, &version); printf("SW version: %d.%d \n API level: %d.%d\n", SWversion.Major, SWversion.Minor, version.Major, version.Minor); } //Repeating the above procedure for hardware based implpementation sts = MFXInit(MFX_IMPL_HARDWARE, &HWversion, &HWsession); if (MFX_ERR_NONE == sts) { MFXQueryVersion(HWsession, &version); printf("HW version: %d.%d \n API level: %d.%d\n", HWversion.Major, HWversion.Minor, version.Major, version.Minor); } MFXClose(SWsession); MFXClose(HWsession); return 0; }
Что я уже пробовал:
1-я связал проект, перейдя к
Решение и GT;Правой Кнопкой Мыши>Свойства&ГТ;а) и Б)
А) С/С++и gt;Общие>В дополнительные каталоги включения&ГТ; *\IntelSWTools\Интел%28Р%29_Media_SDK_2016.0.2\включать;%(AdditionalIncludeDirectories)
б)Компоновщик и gt;Общие>В дополнительные каталоги библиотек&ГТ; *\IntelSWTools\Интел%28Р%29_Media_SDK_2016.0.2\Сайт lib;%(AdditionalLibraryDirectories)
2-Веб-страница документации Visual Studio 2017RC
3-выполнена программа на разных версиях Visual Studio (а именно 2012) и Code:: Blocks 13.12 (в Code:: Blocks компилятор не может распознать указанные функции)
Afzaal Ahmad Zeeshan
Visual Studio 2017, не публикуется и гарантированно ломает многие вещи время от времени. Попробуйте использовать Visual Studio 2015 до тех пор, пока на некоторое время и посмотреть, если это работает или нет.
theRealGreenz1
Спасибо, Afzaal Зишан Ахмед за ВАШ интерес в этом вопросе. Я постараюсь найти систему с VS2015 и вернуться назад. Пожалуйста, учтите, что Code:: Blocks также показал аналогичную ошибку вместе с Visual Studio 2012.
theRealGreenz1
Конкретный вопрос, связанный с моей проблемой, был решен. Спасибо за Ваш вклад.
Richard MacCutchan
Вы не добавили фактическое имя библиотеки MFX в свойствах компоновщика.
theRealGreenz1
Спасибо Ричарду за проявленный интерес. Разве "1b" в разделе "Что я пробовал" не указывает на то же самое? Следующий каталог: '*\IntelSWTools\Интел%28Р%29_Media_SDK_2016.0.2\Либ\х64 имеет libmfx необходимые библиотеки.Либ'.
Richard MacCutchan
Все в порядке, вы скажете линкеру, где искать. Но вы также должны сказать ему, что смотреть для. Поэтому вам нужно добавить имя библиотеки в Компоновщик- & gt;Input & gt;Дополнительные зависимости
theRealGreenz1
Я сделаю это и вернусь назад, если столкнусь с какой-либо ошибкой
theRealGreenz1
Ошибка LNK2019 неразрешенный внешний символ swscanf_s, на который ссылается функция "private: bool _ _ cdecl MFX:: MFXPluginsInFS:: ParseKVPair(wchar_t *, wchar_t *, class MFX:: PluginDescriptionRecord &)" (? ParseKVPair@MFXPluginsInFS@MFX@@AEAA_NPEA_W0AEAVPluginDescriptionrecord@2@@Z) HelloWorld_Intel_SDK G:\Visual студия\проекты\HelloWorld_Intel_SDK\HelloWorld_Intel_SDK\libmfx.Либ(mfx_plugin_hive.объект) 1
Предупреждение LNK4098 defaultlib 'LIBCMT' конфликтует с использованием других библиотек; use /NODEFAULTLIB:library HelloWorld_Intel_SDK G:\Visual студия\проекты\HelloWorld_Intel_SDK\HelloWorld_Intel_SDK\ссылка 1
Ошибка LNK1120 1 неразрешенные внешние элементы HelloWorld_Intel_SDK G:\Visual Studio\Projects\HelloWorld_Intel_SDK\x64\Debug\HelloWorld_Intel_SDK.exe 1
Richard MacCutchan
Аналогичная проблема с предыдущей, но также может заключаться в том, что вы включаете что-то, чего там быть не должно. Вместо того, чтобы просто использовать компоновщик для поиска ошибок, вам нужно тщательно изучить свой проект, чтобы убедиться, что его структура правильна и логична.
theRealGreenz1
Я постараюсь найти ошибки в коде.
Richard MacCutchan
Это неподходящее место для поисков. Проблема в том, что у вас есть несколько библиотек, конфликтующих друг с другом, а не ошибки в коде.
theRealGreenz1
Как избавиться от нескольких библиотек? Все заголовочные файлы, предоставляемые intel, взаимосвязаны.
Richard MacCutchan
Заголовочные файлы не имеют ничего общего с библиотеками. Заголовочные файлы содержат определения исходного кода, используемые компилятором. Библиотеки содержат скомпилированные объекты, используемые компоновщиком. Вам нужно использовать документацию, чтобы узнать, какие библиотеки взаимосвязаны.
theRealGreenz1
Я проверю документацию на наличие таких ошибок.
theRealGreenz1
Конкретный вопрос, связанный с моей проблемой, был решен. Спасибо за Ваш вклад.
RedDk
Вы когда-нибудь видели LNK2019 раньше?
Сначала посмотри сюда.
https://msdn.microsoft.com/en-us/library/799kze2z.aspx
theRealGreenz1
Спасибо RedDk за ВАШ интерес к этому вопросу. Я только что просмотрел контент, связанный с этой ошибкой для 2017RC. Я вернусь назад, если найду это полезным.
RedDk
Пока это не ответ на (мой) вопрос ... идти куда-то-это то, что вы хотите сделать, но я предлагаю добавить "/Verbose" в командную строку, а затем написать пути к ней .lib, который содержит определения, которые появляются как чужеродные под этим дополнением. Только для начала ...
theRealGreenz1
Нет, я никогда раньше не видел LNK2019. Пожалуйста, смотрите раздел " 2 "в разделе" Что я сделал". Ваша ссылка перенаправляет меня на веб-страницу, связанную с той же ошибкой, но для VS2015.
theRealGreenz1
Конкретный вопрос, связанный с моей проблемой, был решен. Спасибо за Ваш вклад.