2

ブーストを使用するいくつかの C++ コードを条件付きでコンパイルし、ブーストが存在しない場合にブースト依存コードをコンパイルしようとしないようにしたいと考えています。

ブーストには、チェックできるように定義されるグローバル マクロがあり__BOOST__ますか?

編集:メイクファイルレベルでこれを達成しなければならないことは明らかです。私はOSXライオンに取り組んでいます。gnu make の使用

4

1 に答える 1

2

これを行う典型的な方法は、必要な/オプションのコンポーネントが存在するかどうかを検出し、ビルドシステムにいくつかの -D オプションを選択的に設定する「構成スクリプト」などを使用することです。

明らかに、それが自分のプロジェクトまたは小規模なディストリビューションである場合は、同じことを手動で行うことができます。

ifdef必要なライブラリ ファイルがある場合は、Makefile でいくつかの種類の選択が必要になることもあります。

必要なブーストの一部がインストールされているかどうかを判断する簡単な方法の 1 つは、コンパイルを試みることです。エラーがある場合、考えられる原因は、boost のその部分が存在しないことです (これは明らかに、より重要な部分が欠落している場合には機能しません。たとえば、コンパイラまたは標準ライブラリがインストールされていないと、コンパイルがこれが、ほぼすべての構成タイプのツールが「最も基本的な機能から始めて、依存関係のツリーを上っていく」理由です)。

于 2013-09-14T17:03:46.800 に答える