VS2015 не связывает user32.lib - PullRequest
       15

VS2015 не связывает user32.lib

0 голосов
/ 03 октября 2018

Я только что унаследовал обслуживание для 10-летнего проекта, который включает в себя перенос его с VS2005 на VS2015.Я почти весь путь, но когда я связываюсь, я получаю эту ошибку:

ошибка LNK2019: неразрешенный внешний символ __imp__MessageBoxA @ 16

Быстрый поиск обнаружил, что для этого требуется user32.lib,Когда я захожу в properties-> linker-> Additional Dependencies, я вижу, что библиотека находится в списке Inherited Values, но она по-прежнему не связывается.Когда я явно добавляю жестко заданный путь и имя файла (C: \ Program Files (x86) \ Windows Kits \ 8.1 \ Lib \ winv6.3 \ um \ x86 \ user32.lib) в качестве другой зависимости, тогда он успешно связывает ...это нормально, я думаю, но если ничего другого, то уродливо, что я полагаюсь на это конкретное место установки (вы знаете, разработчики программного обеспечения решат помещать вещи в нечетные места) ... У кого-нибудь есть какие-то догадки относительно того, почему визуальныйstudio не находит библиотеку, и как ее исправить?

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Windows Kits\8.1 сообщает, что у вас установлен Windows 8.1 SDK.На данный момент есть Windows 10 SDK, но это, вероятно, не имеет большого значения для вас - user32.lib существует с незапамятных времен.

Проблема здесь заключается в том, что, пока у вас установлен SDK 8.1, VisualСтудия не знает об этом.IIRC, он находится в установщике VS2015, так что вы можете запустить его заново и повторно выбрать SDK там.(Или выберите другой SDK - вы, скорее всего, будете ограничивать SDK до Win7)

0 голосов
/ 03 октября 2018

Возьмите зависимость от файла lib на уровне проекта, а затем добавьте свои пути на страницу свойств .

...