Добрый день, уважаемые коллеги!  ab
Пытаюсь решить одну проблему уже больше недели, наконец-то решил обратиться на свой любимый форум.
Имеется задание. Написать программу под 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 .
Мой исходный код:

+ открыть спойлер
// 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
+ открыть спойлер
// File "mywifi.cpp"
#include "mywifi.h"

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

Ошибка:

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

2

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

95% процентов проблем находятся между клавиатурой и стулом.

3

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

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

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

4

Lucky_spirit пишет:

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

/рукалицо

+ открыть спойлер

нет, просто написать недостаточно...
http://bsaidso.files.wordpress.com/2009/05/facepalm_picard2.jpg?w=360&amp;h=240

+ открыть спойлер

мало...
http://cache.ohinternet.com/images/thumb/7/73/JeanLucPicardFacepalm.jpg/618px-JeanLucPicardFacepalm.jpg

+ открыть спойлер

всё ещё мало...http://mypetjawa.mu.nu/archives/picard-facepalm.jpg

+ открыть спойлер

спасибо сонику за вложенные спойлеры

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

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

95% процентов проблем находятся между клавиатурой и стулом.

5

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

6

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

95% процентов проблем находятся между клавиатурой и стулом.