2016-03-23 9 views
1

メンバー関数をバインドしたいが失敗しているようだ。メンバ関数をstd :: functionとバインドする方法は?

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); 
。。。 

ビルドが失敗した

./prebuilts/ndk/9/sources/cxx-stl/gnu-libstdc++/4.8/include/functional:2463:!エラー:STD」に未定義の参照: :__ throw_bad_function_call()」 collect2は:エラー:ldは1つの終了ステータスが返されますがgccの代わりg++とリンクするように

+0

https://stackoverflow.com/questions/12942538/undefined-symbol-std-throw-bad-function-call – melak47

答えて

1

が見えます。

g++libstdc++にリンクしていますが、gccはリンクしていません。

g++とリンクするか、-lstdc++をリンカーコマンドラインに追加してください。

関連する問題