目录
1.环境准备
IDE: CLion
系统:Ubuntu 18.04 Desktop
2.要包含的.h文件
wpa_ctrl.h //源代码目录 src/common 下,在需要调用接口的源文件里包含此头文件
3.要包含的.c文件
wpa_ctrl.c //源代码目录 src/common 下,wpa_ctrl.h中定义的函数的实现
os_unix.c //源代码目录 src/utils 下,os_malloc等函数的实现,此文件与编译系统环境有关,linux系统选择这个
4.设置宏定义
CONFIG_CTRL_IFACE
CONFIG_CTRL_IFACE_UNIX
最终的CMakeLists.txt文件
cmake_minimum_required(VERSION 3.25)
project(项目名)
set(CMAKE_CXX_STANDARD 14)
set(WPA_SOURCE_PATH "源代码src目录绝对路径")
add_definitions(
-DCONFIG_CTRL_IFACE_UNIX
-DCONFIG_CTRL_IFACE
)
include_directories(
${WPA_SOURCE_PATH}
${WPA_SOURCE_PATH}/utils
)
add_executable(
项目名 main.cpp
${WPA_SOURCE_PATH}/common/wpa_ctrl.c
${WPA_SOURCE_PATH}/common/wpa_ctrl.h
${WPA_SOURCE_PATH}/utils/os_unix.c
)
从官方QT示例里截取的代码
#include <iostream>
#include "common/wpa_ctrl.h"
int main() {
struct wpa_ctrl *ctrl;
int ret;
char buf[2048];
size_t len;
ctrl = wpa_ctrl_open(NULL);
if (ctrl == NULL)
return 0;
len = sizeof(buf) - 1;
ret = wpa_ctrl_request(ctrl, "INTERFACE_LIST", 14, buf, &len, NULL);
if (ret < 0) {
wpa_ctrl_close(ctrl);
return 0;
}
buf[len] = '\0';
wpa_ctrl_close(ctrl);
std::cout << buf << std::endl;
return 0;
}