类成员函数找不到undefined reference to

魔鬼筋肉人 魔鬼筋肉人 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
定义了一个类,有一个函数时返回一个vector。

------
StaAgent.h
------

using Ssid_t = struct {
std::string ssid;
};

class StaAgent {
public:
vector<Ssid_t> scanSsid();
...
}

在StaAgent.cpp里定义了此函数的实现

------
StaAgent.cpp
------


vector<Ssid_t> StaAgent::scanSsid()
{
...
}


在另一个文件里调用这个

#include "StaAgent.h"
...
void StaDialog::cn_scanSsidBt_clicked()
{
auto _sa = new StaAgent();
auto ssids = _sa->scanSsid();
...
}

链接的时候显示undefined reference to StaAgent::scanSsid()

g++ -Wl,-O1 -Wl,-rpath,/opt/Qt5.1.0/5.1.0/gcc_64 -Wl,-rpath,/opt/Qt5.1.0/5.1.0/gcc_64/lib -o StaTest main.o StaAgent.o StaDialog.o moc_StaDialog.o -L/opt/Qt5.1.0//5.1.0/gcc_64/lib -lQt5Gui -lQt5Widgets -lQt5Core -lGL -lpthread
StaDialog.o: In function `StaDialog::cn_scanSsidBt_clicked()':
StaDialog.cpp:(.text+0x1d2): undefined reference to `StaAgent::scanSsid()'
collect2: error: ld returned 1 exit status



----------------------------------
首先,链接文件里能找到StaAgent.o
然后使用nm -C StaAgent.o
在输出里,找不到StaAgent::scanSsid()这个符号。
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
魔鬼筋肉人
C++ 语言 65,214 成员 250,514 内容