ССЫЛКА: фатальная ошибка LNK1104: не удается открыть файл "Iphlpapi.lib"

Поэтому я использую Visual C++ 6.0 и пытаюсь скомпилировать некоторый исходный код, но после компиляции я получаю следующее:

Linking...
LINK : fatal error LNK1104: cannot open file "Iphlpapi.lib"
Error executing link.exe.

Я использую правильный SDK, а каталоги правильные. Я проверил, дважды проверил, и трижды проверил. Файл является указанным каталогом. Я не могу понять, в чем проблема. Есть идеи?

Пакет обновления 6

SDK для Windows Server 2003 SP1 // Звучит странно, поскольку я использую XP SP3, но это работало для меня в прошлом.

Как я уже сказал, это работало в прошлом для меня безупречно. Я не понимаю, почему это не сработает сейчас.

4 ответа

Решение

Я уверен, что у вас есть некоторые проблемы с конфигурацией вашего проекта. Попробуйте переместить этот файл в папку с вашим исходным кодом. Проверьте, как вы add это (через входные библиотеки) для вашего проекта. Попробуйте создать новый проект и переместить этот.lib в папку с кодом (после добавления его в используемые библиотеки).

sysinternals procmon покажет вам, где находится сборка. не исправлю это, но даст вам подсказку

(tools)
(options)
(directories) tab
(show directories for ) library files

В общем, вы хотите, чтобы путь, который включает отсутствующую библиотеку, был включен туда. так что все проекты могут найти его.

Другой вариант - добавить библиотеку в ваш проект, используя

(right click on the project)
(add files to project)
 browse to, and add the library

Один из этих двух методов должен сделать работу за вас

Может быть, я очень поздно к этому обсуждению, следующее решение сработало для меня. Единственный требуемый параметр - указать путь к библиотеке.

В VC++ 6.0 перейдите в Инструменты -> Параметры -> вкладка "Каталоги" -> выберите "Опция LibraryFiles" в раскрывающемся списке "ShowDirectories".

Добавьте путь к библиотеке, в моем случае это "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib"

Скомпилируйте, используя командную строку, проверьте синтаксис, правильно ли расставлены пробелы, например, "cl practice.cpp /clr:safe /doc" выполняется правильно, но "cl practice.cpp /clr:safe /doc" выдает указанную вами ошибку

Другие вопросы по тегам