定义了一个类,有一个函数时返回一个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()这个符号。
------
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()这个符号。