1. 程式人生 > >Qpid第二課 配置Boost依賴庫環境變量

Qpid第二課 配置Boost依賴庫環境變量

生效 如何 解決 cmake 動態庫 mode pan class 下載

場景

Qpid依賴Boost庫,一般情況下,使用CMake生成VS解決方案的時候,需要指定Boost頭文件和庫文件目錄,否則出現如下的錯誤編譯提示:

Could not find the following Boost libraries:

boost_sysytem

boost_thread



解決方案一:

在環境變量中新建一個:名為BOOST_ROOT,值為E:\work2\boost_1_58_0


解決方案二:

在環境變量中新建一個:名為BOOST_INCLUDEDIR,值為E:\work2\boost_1_58_0

在環境變量中新建一個:名為BOOST_LIBRARYDIR,值為E:\work2\boost_1_58_0\stage\lib


重啟系統,讓環境變量生效!!


技巧

當前使用的是Boost動態庫,Boost編譯出來的靜態庫文件無法被CMake搜索到


註意事項

1)直接從官方下的編譯好的包,而編譯好的包裏頭,庫文件目錄的名字是lib64-msvc-12.0,需要修改為lib或者stage/lib

FindBoost.cmake文件是如何搜索Boost lib文件的呢?

下面是搜索Boost lib的腳本代碼,當然如果不修改庫文件目錄可以添加如下

${Boost_INCLUDE_DIR}/lib64-msvc-12.0

list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c}

${Boost_INCLUDE_DIR}/lib

${Boost_INCLUDE_DIR}/../lib

${Boost_INCLUDE_DIR}/stage/lib

)


2)下載Boost源碼編譯動態庫

b2.exe --build-type=complete --build-dir=build_tmp toolset=msvc-14.0 address-model=32 stage

說明:stage說明將編譯的庫文件復制到stage目錄,生成過程的文件保存在build_tmp目錄,toolset指定

使用VS2015編譯器


Qpid第二課 配置Boost依賴庫環境變量