2017-01-26 11 views
1

こんにちは:私は書き込み中のプログラムのためにいくつかの静的なブーストライブラリをリンクしています。私は、ブーストが正しくインストールされていることを確認するためにFindBoost.cmakeを使用します。私がBoost 1.53.0から1.55.0に更新しようとするまでは、すべて動作していました。私の最初のブーストのインストールバニラからインストールされています。それがインストールさCentOS7ブーストアップグレード後に壊れた

[enetres] 
name = ENETRES REPO for CentOS/RHEL $releasever 
baseurl = http://repo.enetres.net/ 
enabled = 0 
protect = 0 
gpgcheck = 0 

が、それはありませんでした:

yum install boost boost-devel 

私が最初にこの種の人のレポからインストールすることで、1.55.0にアップグレードしようとしました私はそれを後退させるために必要なものでした。そのプロセスは次のようになりました:

yum install boost-1.55.0 
yum erase boost-1.55.0 

1.55.0をインストールしているうちに、1.53.0のインストールに取って代わりました。

私はその後、ブーストからの通常の手順でブートストラップ使用してインストールしようとした: http://www.boost.org/doc/libs/1_55_0/doc/html/bbv2/installation.html

私はは/ opt /ブーストでそれをインストール/、その後のいずれかのI RM -rfは/ opt /ブースト動作しませんでした。私は正常に戻っています

思考は、私は再びyumのからブースト1.53.0を再インストールしていないが、FindBoost.cmakeは、もはや私は、ファイルのパスが含まれ、ライブラリのディレクトリに正しい見ていても、ブースト、を見つけました。ここで

は、私が使用したライブラリのサンプルであり、私は、ヘッダーに/ usr /含める/ブーストしているを確認しました:私はパスの全てのON -DBoost_DEBUG =とcmakeのを実行すると

$ locate libboost_system 
/usr/lib64/libboost_system-mt.a 
/usr/lib64/libboost_system-mt.so 
/usr/lib64/libboost_system-mt.so.1.53.0 
/usr/lib64/libboost_system.a 
/usr/lib64/libboost_system.so 
/usr/lib64/libboost_system.so.1.53.0 

libディレクトリとincludeディレクトリが正しく見えます。

興味深いデバッグ出力:

$ ./build.sh -DBOOST_LIBRARYDIR=/usr/lib64 -DBoost_DEBUG=ON 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:481 ] 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:483 ] Boost_USE_MULTITHREADED = TRUE 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:485 ] Boost_USE_STATIC_LIBS = ON 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:487 ] Boost_USE_STATIC_RUNTIME = 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:489 ] Boost_ADDITIONAL_VERSIONS = 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:491 ] Boost_NO_SYSTEM_PATHS = 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:543 ] Declared as CMake or Environmental Variables: 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:545 ] BOOST_ROOT = 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:547 ] BOOST_INCLUDEDIR = 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:549 ] BOOST_LIBRARYDIR = /usr/lib64 
...clip... 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:620 ] Include debugging info: 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:622 ] _boost_INCLUDE_SEARCH_DIRS = PATHS;C:/boost/include;C:/boost;/sw/local/include 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:624 ] _boost_PATH_SUFFIXES = ..clip...boost-1_53_0;boost_1_53_0;boost/boost-1_53_0;boost/boost_1_53_0;boost-1_53;boost_1_53;boost/boost-1_53;boost/boost_1_53;...clip... 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:644 ] location of version.hpp: /usr/include/boost/version.hpp 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:668 ] version.hpp reveals boost 1.53.0 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:744 ] guessed _boost_COMPILER = -gcc53 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:754 ] _boost_MULTITHREADED = -mt 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:797 ] _boost_RELEASE_ABI_TAG = - 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:799 ] _boost_DEBUG_ABI_TAG = -d 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:847 ] _boost_LIBRARY_SEARCH_DIRS = **/usr/lib64**;/usr/include/lib;/usr/include/../lib;/usr/include/stage/lib;PATHS;C:/boost/lib;C:/boost;/sw/local/lib 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:957 ] Searching for SYSTEM_LIBRARY_RELEASE: boost_system-gcc53-mt-1_53;boost_system-gcc53-mt;boost_system-mt-1_53;**boost_system-mt**;**boost_system** 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:993 ] Searching for SYSTEM_LIBRARY_DEBUG: boost_system-gcc53-mt-d-1_53;boost_system-gcc53-mt-d;boost_system-mt-d-1_53;boost_system-mt-d;boost_system-mt;boost_system 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:957 ] Searching for FILESYSTEM_LIBRARY_RELEASE: boost_filesystem-gcc53-mt-1_53;boost_filesystem-gcc53-mt;boost_filesystem-mt-1_53;**boost_filesystem-mt;boost_filesystem** 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:993 ] Searching for FILESYSTEM_LIBRARY_DEBUG: boost_filesystem-gcc53-mt-d-1_53;boost_filesystem-gcc53-mt-d;boost_filesystem-mt-d-1_53;boost_filesystem-mt-d;boost_filesystem-mt;boost_filesystem 
-- [ /usr/share/cmake/Modules/FindBoost.cmake:1044 ] Boost_FOUND = 1 
CMake Error at /usr/share/cmake/Modules/FindBoost.cmake:1138 (message): 
    Unable to find the requested Boost libraries. 

    Boost version: 1.53.0 

    Boost include path: /usr/include 

    Could not find the following static Boost libraries: 

      boost_system 
      boost_filesystem 

    No Boost libraries were found. You may need to set BOOST_LIBRARYDIR to the 
    directory containing Boost libraries or BOOST_ROOT to the location of 
    Boost. 

あなたは私がBOOST_LIBRARYDIR =は/ usr/lib64に設定しています見ることができるように。

ご協力いただきまして誠にありがとうございます。

+0

あなたは、ブーストインストールでちょっと混乱しているとは言いません....しかし質問があります:以前のcmakeによって生成されたすべてのファイルを完全に削除しましたか?設定を実行しますか?ソース外のビルドを使用する場合は、単に「ビルド」ディレクトリを削除してクリーンな状態から開始してください。 – fedepad

+0

'FindBoost.cmake'があなたのライブラリを見つけられないようにするのは' Boost_COMPILER'です。 '-DBoost_DEBUG = ON'出力から、このパラメータが' -gcc53'であることが検出されるので、その接尾辞を持つライブラリを検索します( "Searching for ..."行を参照)。明示的にこのパラメータを設定することはできますが([FindBoost.cmake documentation(https://cmake.org/cmake/help/v3.0/module/FindBoost.html)]を参照)、空の文字列に設定することはできません。なぜブーストブートストラップがコンパイラサフィックスなしでライブラリを作成するのか不明です。 – Tsyvarev

+0

@fedepad私はゼロから再クローンしましたが、それは助けになりませんでした。あなたのコメントは私に考えさせます:他のcmake設定ファイルがクリーンでない状態になっていますか? (私はcmakeも再インストールしますが)。.cmake設定ファイルはありますか? – esurface

答えて

0

ソリューションが理にかなって、私は混乱しています:

yum install boost-static 

OK、はい、私は解決への糸口ポイントので= ON Boost_USE_STATIC_LIBSを使用しますが、私はを誓う「yumのブーストブースト-develのインストール'を使用して静的ヘッダーをインストールすることもできます...

関連する問題