みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Windows上でのCmakeの実行(g++で)

main.cpp, hello.cppのファイルがあり、以下のようにコンパイルして実行できます。

> g++ -c main.cpp hello.cpp # ソースファイルをコンパイルしてオブジェクトファイル(main.o, hello.o)を生成
> g++ -o a.out main.o hello.o # オブジェクトファイルをリンクしてa.outという実行ファイルを生成

これと同じことをcmakeでやることを考えました。手順は以下のようです。
CmakeをインストールしてCMakeLists.txtを上記ソースと同じところに作成しました。

CMakeLists.txtは以下の通りです。
# CMakeのバージョンを設定
cmake_minimum_required(VERSION 2.8)
# プロジェクト名と使用する言語を設定 CXXとは?Visual Studioでしょうか。g++ではどうやるのでしょうか。
project(test_cmake CXX)
# a.outという実行ファイルをmain.cppとhello.cppから作成
add_executable(a.out main.cpp hello.cpp)


main.cpp, hello.cpp,CMakelists.txtが保存されているフォルダ上で、以下の操作をしました。

> mkdir build
> cd build
> cmake .. 正常に動作しているようです。
> make ←makefileがないので実行できない(そうだろうと思います)これも問題だと思います。makeがないのに。またこのmakeってどこから提供されるものでしょうか。

この手順だと、a.outを作成してくれるはずですが、a.out.vcxprojのようなファイルが出ています。visual studioなのでそうなるだろうとは思いますが。
予定どおり、g++が実行され、a.outが出力されるようにするにはどうしたらいいでしょうか。

投稿日時 - 2019-06-29 02:15:54

QNo.9630079

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

申し訳ありません。
何をとち狂ったのか、GNU makeについて知りませんかという疑問が出ること自体が質問をきちんと読めていませんね。
その最後の発言は狂ってますが、他のcmake自体に関することは間違ったことは書いていません。

投稿日時 - 2019-06-29 20:28:42

ANo.1

https://gitlab.kitware.com/cmake/community/wikis/FAQ#how-do-i-use-a-different-compiler
cmakeはツールを自動判定して動きます。
その判定にはcmakeに含まれているスクリプトが使われていて、そのスクリプトの書式で判定処理を自前で用意したり代替判定をさせたりできるようになっている分、前提となるルールがありますから、そのルールをここで訊いてやるよりも上記の公式サイトを読むか自力でスクリプトを解析するか(c:\program files\cmakeの下に各種スクリプトもインストールされている)本を買った方が良いと思います。
そのくらい質問していては埒があきません。

しかしg++を使おうとしていてGNU makeの存在を知りませんか?

投稿日時 - 2019-06-29 04:09:09

あなたにオススメの質問