C++11 如何将成员函数绑定到std::function?

C++11 如何将成员函数绑定到std::function?,c++11,C++11,我想绑定成员函数,但似乎失败了 Q4kDeviceSource.hh class Q4kDeviceSource { public: void videoStreamCallback(QIPCamStreamCbType streamCbType, uint32_t streamId, uint8_t *buffer, size_t bufferSize); 。。。 } typedef std::function<void(QIPCamStreamCbType cbType, uin

我想绑定成员函数,但似乎失败了

Q4kDeviceSource.hh
class Q4kDeviceSource {
public:
  void videoStreamCallback(QIPCamStreamCbType streamCbType, uint32_t streamId, uint8_t *buffer, size_t bufferSize);
。。。
}

typedef std::function<void(QIPCamStreamCbType cbType, uint32_t streamId,
                        uint8_t* buffer, size_t bufferSize)>
                        StreamCallback;

Q4kDeviceSource.cpp
。。。
StreamCallback videoElementryCb = std::bind(&Q4kDeviceSource::videoStreamCallback, this,
        std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4);

videoElementryCb(QIPCamStreamCbType::QIPCAM_STREAMCBTYPE_NORMAL,id,NULL,0);
。。。
Q4kDeviceSource.hh
类Q4kDeviceSource{
公众:
void videoStreamCallback(QIPCamStreamCbType streamCbType,uint32\u t streamId,uint8\u t*buffer,size\u t bufferSize);
。。。
}
typedef std::函数
流回调;
Q4kDeviceSource.cpp
。。。
StreamCallback videoElementryCb=std::bind(&Q4kDeviceSource::videoStreamCallback,此,
std::占位符::_1,std::占位符::_2,std::占位符::_3,std::占位符::_4);
videoElementryCb(QIPCamStreamCbType::QIPCAM_STREAMCBTYPE_NORMAL,id,NULL,0);
。。。
构建失败!

/prebuilts/ndk/9/sources/cxx stl/gnu libstdc++/4.8/include/functional:2463:error:undefined引用“std::\uuuuu throw\u bad\u function\u call()”
collect2:错误:ld返回了1个退出状态

看起来您链接的是
gcc
,而不是
g++

不同之处在于
g++
也在
libstdc++
中链接,而
gcc
则没有

使用
g++
链接或将
-lstdc++
添加到链接器命令行