2010-12-01 4 views
0

Я пытаюсь получить некоторую информацию с сервера DHCP с помощью api windows, но я продолжаю получать неопределенные ссылки.undefined ссылка на `DhcpEnumSubnets '

Согласно MSDN DhcpEnumSubnets в dhcpsapi.lib, и я проверил, что прототип в файле dhcpsapi.h и (простой поиск текста), что IS в .lib

Как вы можете видеть ниже. Я связываюсь с lib, но все же получаю ошибки компоновщика. У кого-нибудь есть идеи для меня?

Вот мой лог компиляции: Я использую Dev-C++ 4.9.9.2 на Windows XP SP2, с последней платформы Windows SDK

«Microsoft® Windows® Software Development Kit (SDK) для Windows, Server 2008 и .NET Framework 3.5 «
« Этот выпуск Windows SDK поддерживает платформы x86, x64 и IA64 для создания и запуска приложений в Windows XP с пакетом обновления 2 (SP2), Windows Server 2003 R2, Windows Vista и Windows Server 2008. «


Компилятор: По умолчанию компилятор Building Makefile: "C: \ Проекты \ dhcptest \ Makefile.win" Выполнение очищаете гт -f main.o dhcptest.exe

г ++ .exe -c main.cpp -o main.o -I "C: /Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I "C:/Dev-Cpp/include/C++/3.4. 2/назад "-I" C:/Dev-Cpp/include/C++/3.4.2/mingw32 "-I" C:/Dev-Cpp/include/C++/3.4.2 "-I" C:/Dev- Cpp/include "-I" C:/Program Files/Microsoft SDK/Windows/v6.1/Include "

g ++. Exe main.o -o "dhcptest.exe" -L "C:/Dev-Cpp/lib" -L "C:/Program Files/Microsoft SDKs/Windows/v6.1/Lib" ". ./../Программные файлы/Microsoft SDK/Windows/v6.1/Lib/WS2_32.Lib "" ../../ Файлы программ/Microsoft SDK/Windows/v6.1/Lib/dhcpsapi.lib "

main.o (.text + 0x128): main.cpp: не определено ссылка на '' DhcpGetVersion main.o (.text + 0x1d7): main.cpp: не определено ссылка на 'DhcpEnumSubnets' главное. o (.text + 0x2b2): main.cpp: неопределенная ссылка на «DhcpEnumSubnetClients»

collect2: Л.Д. возвращается статус выхода 1

make.exe: * [dhcptest.exe] Ошибка 1

Выполнение прервано


Редактировать: Я решил проблему путем impdef/implib-ing dhcpsapi.dll и связывания с этой библиотекой. Не знаю, что происходит с lib, поставляемым в SDK MS Platform.

ответ

1

Я вижу -L параметры в командной строке, задающие дополнительные библиотеки пути, но я не вижу каких-либо -l указать какую библиотеку связать с.

Я хотел бы попробовать следующее:.

г ++ ехе main.o -o "dhcptest.exe" -L "C:/Dev-Cpp/Lib" -L "C:/Program Files/Microsoft SDKs/Windows/v6.1/Lib» -lWS2_32 -ldhcpsapi

+0

Вам не нужна -l, если указать полный путь к файлу .lib ... это путь dev- C++ делает это, когда вы добавляете lib в свой проект. Несмотря ни на что, я попытался с ** - lWS2_32 -ldhcpsapi **, но все равно получаю ту же проблему. : - / – 2010-12-02 06:51:56