本篇 ShengYu 將介紹如何在 Windows 用 cmake 產生 Visual Studio 專案寫 Boost 程式,Windows 怎麼安裝 boost 請看這篇,確定系統有安裝 boost 後,就開始動手寫程式吧!
用 cmake 來建立 Visual Studio 專案
要讓 cmake 能夠使用 boost,要先設定 BOOST_ROOT、BOOST_INCLUDEDIR、BOOST_LIBRARYDIR 三個變數才能順利找到 boost 的路徑與 cmake 相關變數
可以在下 cmake 時後面帶參數,也可以在CMakeList.txt裡用 set 設定。
這邊會用到的變數為 BOOST_ROOT、BOOST_INCLUDEDIR、BOOST_LIBRARYDIR,最後可在 CMakeList.txt 裡 確認Boost_FOUND 這個變數看看有沒有找到 Boost。1
2
3
4
5cmake .. \
-G "Visual Studio 14 2015 Win64" \
-DBOOST_ROOT:PATH=C:/osvr/boost_1_66_0 \
-DBOOST_INCLUDEDIR:PATH=C:/osvr/boost_1_66_0 \
-DBOOST_LIBRARYDIR:PATH=C:/osvr/boost_1_66_0/libs
補充︰我使用到 cmake 版本是3.xx,按照它內部的 FindBoost.cmake 來看只能找到1.70以下
寫專案的 CMakeList.txt
CMakeList.txt project 使用 Boost_INCLUDE_DIRS、Boost_LIBRARIES變數。1
2
3
4
5
6find_package(Boost 1.66.0 COMPONENTS date_time filesystem system ...)
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
add_executable(foo foo.cc)
target_link_libraries(foo ${Boost_LIBRARIES})
endif()
寫一個簡單的 Boost 程式
1 |
|
執行程式1
echo 1 2 3 | ./boost_example
結果輸出如下:1
3 6 9
參考
[1] FindBoost — CMake 3.16.2 Documentation
https://cmake.org/cmake/help/v3.16/module/FindBoost.html
[2] CMake/FindBoost.cmake at master · Kitware/CMake · GitHub
https://github.com/Kitware/CMake/blob/master/Modules/FindBoost.cmake