2015-09-21 2 views
1

Я пытаюсь скомпилировать некоторый код c/C++, используя MSVC без IDE. Я получаю ошибки компоновщика о некоторых потерянных функциях.lib файлы для стандартных вызовов функций библиотеки отсутствуют на msvc

glfw3.lib(init.c.obj) : error LNK2019: unresolved external symbol __imp_vsnprintf referenced in function _glfwInputError 
msvcrt.lib(vsnprintf.obj) : error LNK2001: unresolved external symbol __imp_vsnprintf 
glfw3.lib(context.c.obj) : error LNK2019: unresolved external symbol __imp_sscanf referenced in function parseVersionString 
msvcrt.lib(vsnprintf.obj) : error LNK2001: unresolved external symbol __imp__vsnprintf 

Но я не знаю, что привело к отключению по умолчанию libs и с которым мне пришлось бы ссылаться.

+0

Запустили ли вы 'vcvarsall.bat' для установки необходимых переменных среды для инструментов командной строки? Если нет, прочитайте https://msdn.microsoft.com/en-us/library/f2ccy3wt.aspx –

+0

Я сделал. Без я мог бы запустить компилятор, не указав весь путь ;-) Но спасибо вам за вашу мысль :-) – Silberling

+0

Лучше всего вывести полную линкеровую командную строку, из которой возникают ошибки. –

ответ

1

Я знаю, что этот пост довольно старый, но решение может быть полезным для других людей, как эта проблема остается с VS 2017.

Я имел ту же самую ошибку, связующую и я нашел решение here благодаря Andrew7Webb.

По-видимому, определения всех функций printf и scanf были перемещены в ряд. Таким образом, у вас есть 2 варианта:

  • Добавить #include <stdio.h> и встроенные функции в вашем проекте;
  • Добавить дополнительную библиотеку к введенному линкера: legacy_stdio_definitions.lib путем редактирования Input Linker в диалоговом окне Свойства проекта

Я выбрал второе, и она работала отлично.

Посмотреть его сообщение для более точного объяснения.

Смежные вопросы