web-dev-qa-db-ja.com

CMakeを使用してBoostライブラリの静的バージョンをリンクします

/ usr/libには、ブーストライブラリの静的バージョンと動的バージョンの両方があります。ここで、CMakeに、実行可能ファイルのリンク中に静的バージョンを優先させたいと思います。私に何ができる?

33
domachine

_CMakeLists.txt_ファイル内:

_set(Boost_USE_STATIC_LIBS   ON)
find_package(Boost REQUIRED ...)
_

私がいる場所...あなたはオプションで使用したいライブラリの名前を入れ、次にtarget_link_libraries(targetname ${Boost_LIBRARIES})を後で下に置きます。かなり最近のCMakeのディストリビューションがある場合は、宣伝どおりに機能するはずです。私は自分のプロジェクトでまさにこの方法でそれをしています。

45
greyfade

これがCMAKEFILEの完全な例です

cmake_minimum_required(VERSION 3.15)
project(your_project)
set(Boost_USE_STATIC_LIBS   ON)
find_package(Boost 1.70 COMPONENTS program_options REQUIRED)
set(CMAKE_CXX_STANDARD 14)   
add_executable(your_project main.cpp)
target_link_libraries(rconpp Boost::program_options)

参照:

BOOSTに関するcmakeドキュメント

1
bowman han