如何设置/配置/影响cmake的_boost_LIBRARY_SEARCH_DIRS? (未找到升级库)

时间:2014-03-14 12:10:00

标签: boost cmake

我完成了     CMake no longer finds static Boost libraries 和     CMake not finding Boost 以及其他一些相关问题。

我遇到了同样的问题,但没有一种解决方案适合我。

正在运行cmake -DBoost_DEBUG=ON .

Building external libraries
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:476 ] _boost_TEST_VERSIONS = 1.56.0;1.56;1.55.0;1.55;1.54.0;1.54;1.53.0;1.53;1.52.0;1.52;1.51.0;1.51;1.50.0;1.50;1.49.0;1.49;1.48.0;1.48;1.47.0;1.47;1.46.1;1.46.0;1.46;1.45.0;1.45;1.44.0;1.44;1.43.0;1.43;1.42.0;1.42;1.41.0;1.41;1.40.0;1.40;1.39.0;1.39;1.38.0;1.38;1.37.0;1.37;1.36.1;1.36.0;1.36;1.35.1;1.35.0;1.35;1.34.1;1.34.0;1.34;1.33.1;1.33.0;1.33
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:478 ] Boost_USE_MULTITHREADED = TRUE
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:480 ] Boost_USE_STATIC_LIBS = ON
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:482 ] Boost_USE_STATIC_RUNTIME =
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:484 ] Boost_ADDITIONAL_VERSIONS =
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:486 ] Boost_NO_SYSTEM_PATHS =
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:538 ] Declared as CMake or Environmental Variables:
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:540 ]   BOOST_ROOT =
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:542 ]   BOOST_INCLUDEDIR =
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:544 ]   BOOST_LIBRARYDIR =
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:546 ] _boost_TEST_VERSIONS = 1.56.0;1.56;1.55.0;1.55;1.54.0;1.54;1.53.0;1.53;1.52.0;1.52;1.51.0;1.51;1.50.0;1.50;1.49.0;1.49;1.48.0;1.48;1.47.0;1.47;1.46.1;1.46.0;1.46;1.45.0;1.45;1.44.0;1.44;1.43.0;1.43;1.42.0;1.42;1.41.0;1.41;1.40.0;1.40;1.39.0;1.39;1.38.0;1.38;1.37.0;1.37;1.36.1;1.36.0;1.36;1.35.1;1.35.0;1.35;1.34.1;1.34.0;1.34;1.33.1;1.33.0;1.33
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:639 ] location of version.hpp: /usr/local/include/boost-1_54/boost/version.hpp
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:663 ] version.hpp reveals boost 1.54.0
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:739 ] guessed _boost_COMPILER = -gcc43
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:749 ] _boost_MULTITHREADED = -mt
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:792 ] _boost_RELEASE_ABI_TAG = -
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:794 ] _boost_DEBUG_ABI_TAG = -d
-- [ /usr/local/share/cmake-2.8/Modules/FindBoost.cmake:842 ] _boost_LIBRARY_SEARCH_DIRS = /usr/local/include/boost-1_54/lib;/usr/local/include/boost-1_54/../lib;/usr/local/include/boost-1_54/stage/lib;PATHS;C:/boost/lib;C:/boost;/sw/local/lib

找到Boost版本和boost标头,静态库不是。 它们都位于/usr/local/lib64,但此路径未包含在_boost_LIBRARY_SEARCH_DIRS

我在cmake version 2.8.12.2上使用sles11 sp2 x86_64

问题是:cmake的 _boost_LIBRARY_SEARCH_DIRS 如何设置/配置/影响?

更新

事实上我有两个问题,一个是通过下面的答案解决的,第二个是错误的

guessed _boost_COMPILER = -gcc43

我可以解决 SET( Boost_COMPILER -gcc48)

1 个答案:

答案 0 :(得分:1)

确保在调用FIND_LIBRARY_USE_LIB64_PATHS之前将全局属性find_package(Boost)设置为true,即:

set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE)

这应该使CMake的boost模块中的find_library调用符合/usr/local/lib64目录。