我正在开发一个菜单选项,以连接到我的C++应用程序中的wifi,即使用OpenFrameworks构建。我想使用ctrl键库,但无法编译它。
代码片段:
网络Wrapper.h:
#ifndef NETWORKWRAPPER_H_
#define NETWORKWRAPPER_H_
class NetworkWrapper {
public:
NetworkWrapper():
private:
struct wpa_ctrl* m_ctrl;
};
#endifNetworkWrapper.cpp:
#include "NetworkWrapper.h"
extern "C" {
#include "wpa_ctrl.h"
}
NetworkWrapper::NetworkWrapper() {
m_ctrl = wpa_ctrl_open("wlan0");
}错误:
***/NetworkWrapper.cpp:7: undefined reference to `wpa_ctrl_open'
collect2: error: ld returned 1 exit status我尝试过抛出包含、使用和不使用extern "C“,但这并没有区别,因为wpa_ctrl.h也包含在extern "C”标记中,尽管带有#ifdef __cplusplus (这是定义的,我进行了双重检查)。
我现在几乎没什么主意了。我应该注意,我尝试将wpa_ctrl.c封装在外部的"C“标记中,据我所知,这些标记不应该编译(?)。这也给出了同样的结果。这导致我手动编译wpa_ctrl库并复制到obj目录,但结果是相同的。
谢谢你抽出时间阅读我的问题,希望你能帮上忙!
*编辑*根据请求编辑*链接选项(我对其进行了一些调整):
g++ -o bin/application_debug obj/linux64 64/Debug/src/main.o.obj/linux64 64/Debug/src/libs/wpa_ctrl.o.obj/linux64 64/Debug/src/公用/NetworkWrapper.o. -Wl,-rpath=./libs:./bin/libs -Wl,-as-sections,-gc-区段-Wl,-rpath=./libs -liw -L ./libs/fmodex/lib/linux64 64/ -lfmodex -L ./bin/libs -lSDL -lSDL_mixer -lcurl ./libs/glfw/lib/linux64 64/libglfw3.a././libs/kiss/lib/linux64 64/libkiss.a././libs/libs/tess2/lib/lib/linux64 64/libtess2.a./libs/poco/lib/linux64 64/libPocoNet.a././libs/libs/poco/lib/linux64 64/libPocoXML.a././libs/poco/lib/linux64 64/libpocoUtil.a ../../../libs/poco/lib/linux64/libPocoFoundation.a ../../../libs/poco/lib/linux64/libPocoNetSSL.a ./libs/poco/libs/poco/lib/linux64 64/libPocoNet.a ../../../libs/poco/lib/linux64/libPocoCrypto.a ./libs/poco/lib/linux64 64/libPocoUtil.a././libs/libs/poco/lib/linux64 64/libPocoXML.a ../../../libs/poco/lib/linux64/libPocoFoundation.a -L/usr/lib 64 -lz -lgstapp-0.10-lgstvisual-0.10-lgstbase-0.10-lgstapp-0.10-lgstbase-0.10-llgmodule-2.0 -pthread -lg螺纹-2.0 -pthread -lxml2 -ludev -lsndfile -lopenal -lssl -lcrypto -lpango -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-latk 1.0 -lcairo -lgdk_2.0 2.0 lgio-2.0 -lpangoft2-1.0 -lgobject-2.0 -lglib-2.0 lglib-2.0-lfontconfig -lfreetype -lmpg123 -lfreetype-lmpg123 -lglut。-lXrandr -lXxf86vm -lXi -lXcursor -ldl -lpthread -lfreeimage
发布于 2016-02-15 14:40:11
所以我终于发现我做错了什么。供未来访客:
我需要在makefile中添加以下定义:
-D CONFIG_CTRL_IFACE -D CONFIG_CTRL_IFACE_UNIXhttps://stackoverflow.com/questions/35366267
复制相似问题