3

构建 UHD (http://ettus-apps.sourcerepo.com/redmine/ettus/projects/uhd/wiki) 下载链接https://github.com/EttusResearch/UHD-Mirror/zipball/release_003_004_003 我想选择 Boost我正在使用的版本

使用 Ubuntu 11.10 64 位,我使用 -fPIC 构建了一个自定义 Boost。我使用静态链接编辑 host/CMakeLists.txt 文件并添加

set(Boost_USE_STATIC_LIBS ON)
set(BOOST_ROOT "/home/bastien/verisat/lib_boost_1_49_0_with_test_po_fPIC")
set(BOOST_INCLUDEDIR "/home/bastien/verisat/lib_boost_1_49_0_with_test_po_fPIC/include")
set(BOOST_LIBRARYDIR "/home/bastien/verisat/lib_boost_1_49_0_with_test_po_fPIC/lib")

在文件中已经存在的这 3 行之前

FIND_PACKAGE(Boost 1.49 COMPONENTS ${BOOST_REQUIRED_COMPONENTS})
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})

当我删除 boost ubuntu 包时,它总是链接到 /usr/lib 中的 boost 而不是指定的那个

sudo apt-get remove libboost-all-dev
sudo apt-get autoremove

然后它工作并指向指定的增强版本

我希望能够这样做而不必卸载默认的 boost ?默认是 1.46 和我的 1.49,但是设置最低版本没有帮助

4

2 回答 2

4

您可以设置Boost_NO_SYSTEM_PATHS变量:

#   Boost_NO_SYSTEM_PATHS        Set to TRUE to suppress searching in system
#                                paths (or other locations outside of BOOST_ROOT
#                                or BOOST_INCLUDEDIR).  Useful when specifying
#                                BOOST_ROOT. Defaults to OFF.
#                                  [Since CMake 2.8.3]
于 2012-10-12T22:30:34.573 回答
2

在某处安装正确的版本并使用环境变量BOOST_ROOT来指定它。CMake 将在正常系统路径之前尝试。

于 2012-10-11T22:13:56.000 回答