私はCMakeを学ぼうとしています。Mastering CMake book を持っていて、最初の「簡単な」チュートリアルを実行しようとしています。 CMake の使用: Hello World の例
最初の部分は問題なく完了しましたが、チュートリアルの「ライブラリの構築」部分のサブフォルダーを追加しようとしたときに、取得できませんでした。最後まで指示に従いました。
**プログラムの作成方法の例を見てきました。ライブラリも作ってみましょう。ライブラリは「namer」と呼ばれ、最も近い惑星の名前を返す単一の関数「getWorld」を持ちます。このライブラリを「namer」というサブディレクトリに配置することを選択します。これをどこに配置するかは問題ではありません。これは単なる例です。
HelloWorld プロジェクトのサブフォルダーにしました。これを別のプロジェクトにする必要がありますか?
** CMake が Namer パッケージ (これが Namer ライブラリになります) を見つけやすくする方法の 1 つは、FindNamer.cmake というヘルパー スクリプトを作成することです。これは、CMake 言語で記述された別のファイルであり、ライブラリが隠れている可能性のあるすべての場所を探し回っています。以下に例を示します (これを「hello/FindNamer.cmake」に入れます):
これは私の FindNamer.cmake ファイルです:
find_path(Namer_INCLUDE_DIRS world.h /usr/include "$ENV{NAMER_ROOT}")
find_library(Namer_LIBRARIES namer /usr/lib "$ENV{NAMER_ROOT}")
set(Namer_FOUND TRUE)
if (NOT Namer_INCLUDE_DIRS)
set(Namer_FOUND FALSE)
endif (NOT Namer_INCLUDE_DIRS)
if (NOT Namer_LIBRARIES)
set(Namer_FOUND FALSE)
endif (NOT Namer_LIBRARIES)
**ここで重要な部分は、ヘッダー ファイル world.h と namer ライブラリを探す "find_path" コマンドと "find_library" コマンドです。
私は次の指示に従いました。最後に、チュートリアルには次のものが含まれています。
**再試行しても、「find_path」と「find_library」に指定した検索パスに必要なファイルが実際には含まれていないため、構成は失敗します。それらをコピーするか、ハードコードされたディレクトリを find_path と find_library に追加して、ハード ドライブ上のファイルの場所を指すようにすることもできますが、Windows の CMake GUI で、または「ccmake」を実行することでより効果的です。Linux では、そこにディレクトリを入力するだけです。
この時点で、私は完全に混乱しています (初心者!!!!)。NamerConfig.cmake または namer-config.cmake ファイルがなく、find_path と find_library が何を指しているのかわかりません。
助けてくれてありがとう、ひどく混乱している:-(