私はよくコンパイルしたライブラリを作成しました。 ライブラリファイルは "libTextSearch.so"C++ Linuxエラー共有ライブラリを読み込み中 `undefined symbol:pthread_create`
thread
が作成されます。私が言ったように
TextSearch::TextSearch(){
std::thread t(&TextSearch::ThreadProc, this);
t.detach();
}
、ライブラリのコンパイルと私は
libTextSearch.so
ファイルを持っている:私はこのためのC++ 11個のスレッドを使用しています。
私は別のアプリケーションでライブラリをロードしようとしています:
void* handle = dlopen("libTextSearch.so", RTLD_LAZY);
if(!handle){
//std::cout << "\n Failed to load libTextSearch.so\n\n";
fprintf(stderr, "dlopen failed: %s\n", dlerror());
return 1;
}
は、私はすでに/usr/lib
にコピーされたパッケージを持っています。これは私が得る出力です:
dlopen failed: /usr/lib/libTextSearch.so: undefined symbol: pthread_create
RUN FINISHED; exit value 1; real time: 0ms; user: 0ms; system: 0ms
私はこれを見上げましたquestion。私はそれが関連していると思うが、私はそれを私の状況に適用することは考えていない。
アイデア?
これは私が持っていたものです: 'dlopenは失敗しました:libpthread.so.0:dlopen()の無効なモード:無効な引数' – Everyone
@Everyone EDITED、テストを '| RTLD_LAZY' please – Rama
ありがとうございます!すべての私の問題を修正 – Everyone