CMakeを使用するにはどうすればよいですか?


102

私はopencvをコンパイルするためにCMakeを使用しようとしています。

チュートリアルを読んでいますが、CMakeListsファイルとは何か、CMakeのGUIにどのように接続されているのか理解できません。

また、メイクファイルとは何か理解できませんでした。CMakeListsと同じですか?

そして、最終的に私がvisual-studioで開いたのはどのファイルですか?


質問は(おそらくでそれに言及しなければならないのWindowsに関連している場合windows、タグ)
バジーレStarynkevitch

CMake 3.13.3、プラットフォームWindows、およびIDE Visual Studio 2017については、wikihow.com / Use-CMakeをお勧めします。
George Theodosiou

回答:


30

CMakeはCMakeListファイルを受け取り、それをプラットフォーム固有のビルド形式(Makefile、Visual Studioなど)に出力します。

最初にCMakeListでCMakeを実行します。Visual Studioを使用している場合は、出力プロジェクト/ソリューションをロードできます。


2
Makefileとは何ですか?visualstudioのプロジェクト/ソリューションファイルはどこにありますか?
lital maatuk、2011年

3
cmake(またはCMakeSetupを実行して生成)を実行すると、Makefile(UNIXの場合)またはプロジェクトファイルがプロジェクトツリーのどこかにあるはずです。場所はCMakeListで指定できます。以下は、あなたが役立つかもしれないCMakeウィキで見つけた短いプレゼンテーションです:elpauer.org/stuff/learning_cmake.pdf
holtavolt

2
CMakeは、選択したビルド形式を使用してプロジェクト全体を構成します。つまり、Visual Studioを使用してコンパイルできるようにすべてを設定します。デフォルトでは(少なくともLinuxでは)、代わりにMakeを使用するプロジェクトが作成されます。Makeは実際にプロジェクトをビルドするために使用され、プロジェクトの構成や設定には使用されません。したがって、最初にCMakeを使用してプロジェクトを設定し、次にMakeを実行してコンパイルとビルドを行う必要があります。
leinaD_natipaC 2014

156

私はWindowsについては知りませんが(使用したことはありません)、Linuxシステムでは、ビルドディレクトリ(トップソースディレクトリ内)を作成するだけです。

mkdir build-dir

中に入る

cd build-dir

次に、実行cmakeして親ディレクトリをポイントします

cmake ..

そして最後に実行します make

make

makecmakeは異なるプログラムであることに注意してください。cmakeMakefileジェネレーターであり、makeユーティリティはMakefileテキストファイルによって管理されます。参照してください cmakeのメイク Wikipediaのページを。

注意:Windowsではcmake動作する可能性があるため、別の方法で使用する必要があります。ドキュメントを読む必要があります(Linuxの場合と同じように)


cmakeとmakeの違いは何ですか?それらは異なるプログラムですか?
lital maatuk

4
すばらしい答えです。サブディレクトリにビルドファイルを取得する方法を理解できませんでした。なぜ公式ドキュメントがこれについて言及していないのか理解できません。
TheBigB 2015年

これはLinuxでも機能しますが、WindowsではC / C ++コンパイラの検出で機能しません。それを行う方法はありますか?
bartlomiej.n

特定のコンピュータがどのように設定されているかによります。PATH変数が正しいことを確認してください。ところで、私自分の人生でWindowsを使用したことがありません(そして1974年に最初のプログラムを書きました)
Basile Starynkevitch

2
非常に多くの賛成投票があり、答えはVisual Studioについて何も言いません。
Abyx

10

はい、cmakemakeは異なるプログラムです。cmake(Linuxでは)Makefileジェネレーターです(Makefile -sはmakeユーティリティを駆動するファイルです)。他のMakefileジェネレーター(特にconfigureやautoconfなど)があります。また、他のビルド自動化プログラム(例:忍者)を見つけることができます。


これは少し紛らわしいと思います。cmakeはビルドシステムジェネレーターであり、cmakeが生成できるものの1つはmakefileです(gnu.org/software/makeなど)。生成できるシステムは他にもたくさんありますが、それらは「Makefileジェネレーター」ではありません。macos(およびおそらく他のすべての場所)では、cmake --helpを実行すると、そのジェネレーターの長いリストが表示されます。たとえば、cmakeはXcodeプロジェクトを生成できます-makeとは関係ありません。
James Moore、

0

CMake 3.13.3、プラットフォームWindows、およびIDE Visual Studio 2017については、このガイドをお勧めします。手短に言うと、
1. cmakeをダウンロード>解凍>実行します。
2.例として、GLFWをダウンロード>解凍し、Buildフォルダ内に作成します。
3. cmakeで、「ソース」を参照>「ビルド」を参照>構成と生成。
4. Visual Studio 2017でソリューションをビルドします。
5.バイナリを取得します。
よろしく。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.