1

AzureストレージC++ SDKをFedora 22でコンパイルしようとしています。gccバージョン5.1.1-1を使用しています。私は、次のコマンドを使用してテストアプリケーションをコンパイルすると:azureストレージのシンボル 'pthread_rwlock_wrlock @@ GLIBC_2.2.5'への未定義参照C++ sdkコンパイル

$> CASABLANCA_DIR=/source/codebox/azure/cpprestsdk/ CXX=g++ cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=on 

$> make 

をそれは、次のエラーメッセージ生成します。

/usr/bin/ld: CMakeFiles/azurestoragetest.dir/main.cpp.o: undefined reference to symbol '[email protected]@GLIBC_2.2.5' 
/usr/lib64/libpthread.so.0: error adding symbols: DSO missing from command line 
collect2: error: ld returned 1 exit status 
tests/CMakeFiles/azurestoragetest.dir/build.make:879: recipe for target 'Binaries/azurestoragetest' failed 
make[2]: *** [Binaries/azurestoragetest] Error 1 
CMakeFiles/Makefile2:125: recipe for target 'tests/CMakeFiles/azurestoragetest.dir/all' failed 
make[1]: *** [tests/CMakeFiles/azurestoragetest.dir/all] Error 2 
Makefile:126: recipe for target 'all' failed 
make: *** [all] Error 2 

を私はは/ usr/lib64にディレクトリにlibpthread.so.0ライブラリを見ることができます。どの他のライブラリをインストールする必要がありますか? 、そして、

find_package(Threads) 

ターゲットにライブラリをリンクされています:

答えて

0

はあなたのCMakeLists.txtに右find_package invokationを追加

target_link_libraries(my_target ${CMAKE_THREAD_LIBS_INIT}) 

すべてですこと。おそらく、あなたはtarget_link_librariesを忘れてしまったでしょう。