私はCMakeの初心者です。私が作成しているプログラムのLinuxでテストしました。このプログラムは (POSIX Threads lib) を使用するため、CMakeList に以下を追加しました。
find_package(Threads)
Linuxディストリビューション(Arch、Mint、Ubuntuなど)で動作しますが、現在、Windows32(Visual Studio 9 2008)で試していますが、生成中に次のメッセージが表示されます:
-- Looking for include file pthread.h - not found
(出力プロジェクト ファイルをコンパイルすると、pthread.h は実際には見つかりません)。
Windows では、「C:\pthread」を pthread ディレクトリと見なし、path で定義しました。
- "C:\pthread\include" (有名な "pthread.h" がある場所)
- "C:\pthread\" (CMake がどこかで "include" を探す場合)
しかし、同じエラーが発生します (キャッシュを削除した後でも)。プロジェクトに Pthread を「手動で」追加したり、CMakeList.txt でいくつかの定数を定義したりできることはわかっていますが、それは CMake の原則ではないと思います。すべてのシステムで同じ「CMakeList.txt」を使用できますよね?では、どうすれば CMake に「やあ ! ここを見て! Pthread はこのディレクトリにあります!」と伝えることができます。CmakeはPATHではなく別の環境変数を調べているのかもしれませんが、この情報は見つかりませんでした。
読んでくれてありがとう。
編集:違いがあるかどうかはわかりませんが、私のプロジェクトはC++プロジェクトです(Cではありません)