ССЫЛКА: фатальная ошибка 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" выдает указанную вами ошибку