2016-10-26 12 views
2

У меня есть небольшая программа командной строки, которая использует API общего доступа OneWire от Maxim и WinUSB. Он отлично работает на моем ноутбуке, используя Win7/VS2013. Теперь я пытаюсь переместить его на Win8.1/VS2015 на моем новом настольном ПК, и я не могу его построить. Ниже приводятся сообщения об ошибках:Решение «локально определенных символов импортированных» ошибок в VC++ 2015

1>------ Build started: Project: readtemp5, Configuration: Debug Win32 ------ 
1>presshum.obj : warning LNK4217: locally defined symbol _printf imported in function _print_array 
1>readtemp.obj : warning LNK4049: locally defined symbol _printf imported 
1>presshum.obj : warning LNK4217: locally defined symbol _sprintf_s imported in function _ReadPressHum 
1>readtemp.obj : warning LNK4049: locally defined symbol _sprintf_s imported 
1>temp10.obj : warning LNK4049: locally defined symbol _sprintf_s imported 
1>presshum.obj : warning LNK4217: locally defined symbol _sprintf imported in function _ReadPressHum 
1>temp10.obj : warning LNK4049: locally defined symbol _sprintf imported 
1>readtemp.obj : warning LNK4217: locally defined symbol _fprintf imported in function _main 
1>readtemp.obj : error LNK2019: unresolved external symbol __imp____iob_func referenced in function _main 
1>readtemp.obj : error LNK2019: unresolved external symbol __imp__scanf referenced in function _mainx 
1>readtemp.obj : error LNK2019: unresolved external symbol __imp__sscanf referenced in function _main 
1>readtemp.obj : error LNK2001: unresolved external symbol _owErrorStack 
1>readtemp.obj : error LNK2001: unresolved external symbol _owErrorPointer 
1>readtemp.obj : error LNK2001: unresolved external symbol _owErrorMsg 
1>C:\Users\RowanB\Documents\Visual Studio 2015\Projects\readtemp5\readtemp5\Debug\readtemp5.exe : fatal error LNK1120: 6 unresolved externals 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

Что означает ошибка «локально определенный символ импорта»? Как найти строку, в которой файл вызывает проблему?

Каковы правила, связанные с именами символов с символами подчеркивания? Как мне определить, что означают исходные имена символов (т. Е. Те, которые я увижу в исходных файлах)?

Я полагаю, что проблема в том, что некоторые файлы заголовков или библиотеки или DLL отсутствуют на настольном ПК или установлены в другом месте и/или что я не настроил свойства проекта правильно, чтобы найти все файлы необходимы. Но как я узнаю, что именно не так, и как это исправить?

Я установил WDK на новый компьютер, но он не устанавливался в том же месте, что и на ноутбуке (C: \ WinDDK). Я не могу найти там, где это было. Где файлы WDK?

Спасибо - Рябина

ответ

2

Я имел аналогичные ошибки при переключении между 2012 и 2015 составителей жгутов один рабочий каталог (идя вперед и назад между двумя управления версиями совершающего где один был еще построен с 2012 года, а другой с 2015 года). Исправить было просто очистить решение и перестроить. Если вы скопировали всю папку на новый компьютер, возможно, что файлы промежуточной сборки с 2013 года вызывают проблему.