首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在我的C++ OpenFrameworks项目中对C++函数的未定义引用。需要帮助集成这个c++库

问在我的C++ OpenFrameworks项目中对C++函数的未定义引用。需要帮助集成这个c++库
EN

Stack Overflow用户
提问于 2016-02-12 15:27:36
回答 1查看 1.1K关注 0票数 1

我正在开发一个菜单选项,以连接到我的C++应用程序中的wifi,即使用OpenFrameworks构建。我想使用ctrl键库,但无法编译它。

代码片段:

网络Wrapper.h:

代码语言:javascript
复制
#ifndef NETWORKWRAPPER_H_
#define NETWORKWRAPPER_H_

class NetworkWrapper {
public:
     NetworkWrapper():
private:
     struct wpa_ctrl* m_ctrl;
};
#endif

NetworkWrapper.cpp:

代码语言:javascript
复制
#include "NetworkWrapper.h"
extern "C" {
     #include "wpa_ctrl.h"
}

NetworkWrapper::NetworkWrapper() {
     m_ctrl = wpa_ctrl_open("wlan0");
}

错误:

代码语言:javascript
复制
***/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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-15 14:40:11

所以我终于发现我做错了什么。供未来访客:

我需要在makefile中添加以下定义:

代码语言:javascript
复制
-D CONFIG_CTRL_IFACE -D CONFIG_CTRL_IFACE_UNIX
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35366267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档