LinuxForum.Fans
Тема

Нужна помощь по программированию с wpa_supplicant

Автор: Lucky_spirit 6 сообщений 2090 просмотров
#257485

Добрый день, уважаемые коллеги! :)
Пытаюсь решить одну проблему уже больше недели, наконец-то решил обратиться на свой любимый форум.
Имеется задание. Написать программу под Linux, которая будет управлять Wpa_supplicant. Мною была изучена документация Wpa_supplicant для разработчиков (не вся, но основное). В ней написано, что для управления Wpa_supplicant или для отслеживания его состояния можно использовать файл wpa_ctrl.c, которые представляют собой библиотеку и которая может быть легко подключена к своим программам. К сожалению, пока что ничего толкового не получается. Всё время получаются ошибки. Программирую в Qt Creator. Исходный код прилагаю.
Исходный код самого Wpa_supplicant - http://w1.fi/releases/wpa_supplicant-1.0.tar.gz .
Документация (*.pdf) - http://w1.fi/wpa_supplicant/wpa_supplicant-devel.pdf .
Мой исходный код:

Показать
text
// File "mywifi.h"
#ifndef MYWIFI_H
#define MYWIFI_H

#include <sys/types.h> #include "wpa_supplicant-1.0/src/common/wpa_ctrl.h" #include "wpa_supplicant-1.0/src/common/wpa_ctrl.c"

class myWifi { public: myWifi(); };

#endif // MYWIFI_H

Показать
text
// File "mywifi.cpp"
#include "mywifi.h"

myWifi::myWifi() { struct wpa_ctrl * ctrl = wpa_ctrl_open("/var/run/wpa_supplicant"); }

Ошибка:

text
/home/lucky/Qt/wifi_daemon/mywifi.cpp:-1: ошибка: undefined reference to `wpa_ctrl_open'
#257497

в проект этот файл, wpa_ctrl.c, добавили?

#257504

Ну, вот же строка из исходного кода:

text
#include "wpa_supplicant-1.0/src/common/wpa_ctrl.c"

Путь к файлу правильный.

#257521
"Lucky_spirit" написал:
#include "wpa_supplicant-1.0/src/common/wpa_ctrl.c"

/рукалицо

Показать
нет, просто написать недостаточно...
Показать
мало...

Показать
всё ещё мало...
Показать
спасибо сонику за вложенные спойлеры

а теперь серьёзно... похоже надо сконфигурировать и собрать wpa_supplicant. получите объектник. потом ar'ом из него соберёте статическую либу(не обязательно, просто так красивее). и уже её быдете подключать к проекту.
Как собирать и конфигурировать не скажу, похоже система там древняя, придуманная ещё до изобретения autotools...

ЗЫ: можно просто выдрать сишный файл и записать в него необходимые дефайны.
ЗЗЫ: за символическую бутылку пива в монетизированном виде могу этим заняться...

#257728

Спойлеры Ваши улыбнули. :) Напишите в личку о "монетизации" Вашего труда. Думаю, договоримся. Не серчайте на меня - я только начинающий программист и мне пока что бывает сложно разобраться. Буду очень рад полученным знаниям.

#258288

если ещё кому-то интересно, вот что получилось: http://pastebin.ca/2159289
в "виндовой" версии (CONFIG_CTRL_IFACE_NAMED_PIPE) не хватает winapi'шных инклюдов.
хедер берётся из библиотеки без изменений, разве что <stddef.h> в него включить, ччтоб по поводу size_t не вознкал.

Войдите или зарегистрируйтесь, чтобы ответить.