0

Boost の一部の機能 (ヘッダーのみのモジュールだけでなく) を使用したい C++ プログラムを作成しており、ソース形式で配布しています。できるだけ多くのオペレーティング システムで動作することを望みますが、具体的にするために Linux を使用します。(私は Windows に慣れていますが、Boost が静的リンクに対応している限り、バイナリの出荷に頼ることができます。)

現在、簡単な手書きのmakefileを出荷しているので、プログラムをコンパイルする手順はたったのmake. ただし、Boost を方程式に組み込むと、これが機能しなくなることを理解する必要があります。これは、ユーザーのマシンで使用可能なバージョン (存在する場合) や、ヘッダー ファイルとライブラリ ファイルがどこに配置されるかがわからないためです。 、代わりに autotools や CMake などのビルド システムを使用する必要があります。

これは正しいです?もしそうなら、最優先事項が信頼性である場合 (つまり、ユーザーがプログラムをコンパイルしてインストールしようとするときに動作する可能性を最大化すること)、どのビルド システムを使用する必要がありますか?

(違いがあれば、GMPも使用する予定です。)

4

1 に答える 1

3

Boost を静的に使用するプログラムのコンパイルは、CMake では非常に簡単です。FindBoostモジュールを使用すると、それが処理されます。

program_optionsを静的に使用するプログラムのCMakeLists.txtファイルの例:

cmake_minimum_required(VERSION 2.8)
project(myproj)

set(Boost_USE_STATIC_LIBS ON)
find_package(Boost 1.40 REQUIRED COMPONENTS program_options)
include_directories(${Boost_INCLUDE_DIRS})

add_executable(myexe source_file.cpp)
target_link_libraries(myexe ${Boost_LIBRARIES})
于 2012-08-23T07:59:23.517 に答える