質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1918閲覧

(はじめての)CMakeで構文エラ-

退会済みユーザー

退会済みユーザー

総合スコア0

CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/12/27 05:47

編集2018/12/27 07:41

Windouws_7に、Ubuntuと、CmakeとをVirtualBoxでインストールして、ここでCmakeの練習を始めています。

UbuntuのHome下にwindows/01.hello/を作り、
Buildに使う以下の2つのファイルを保存しました。

###1つ目

ruby:hello.cpp

1#include <iostream> 2int main() 3{ 4 std::cout << "Hello, World!!\n"; 5 return 0; 6}

###二つ目

CMakeLists.txt

1project(hello) 2add_executable(hello hello.cpp)

「01.hello」フォルダに来て、そこへ「build」フォルダを作り、

chyfarm@chyfarm-VirtualBox:~/windows/01.hello$ mkdir build

この「build」フォルダへ移動してから

chyfarm@chyfarm-VirtualBox:~/windows/01.hello$ cd build

「cmake」したのですが、

chyfarm@chyfarm-VirtualBox:~/windows/01.hello/build$ cmake

同じように ↓ 構文エラーが出ます。

Usage cmake [options] <path-to-source> cmake [options] <path-to-existing-build> Specify a source directory to (re-)generate a build system for it in the current working directory. Specify an existing build directory to re-generate its build system. chyfarm@chyfarm-VirtualBox:~/windows/01.hello/build$ cmake </windows/01.hello> bash: 予期しないトークン `newline' 周辺に構文エラーがあります

これはどこに誤りがありますか?

<path-to-source>と言うので、いろいろ試したのですが、「bash: 予期しないトークン `newline' 周辺に構文エラーがあります」ばかりで、(頭の中が)混乱して来ました。

:~/windows$ cd .. :~$ cmake build </windows/01.hello> //構文エラー :~$ cmake build <./windows/01.hello> //構文エラー :~$ cmake build <windows/01.hello> //構文エラー :~$ cd windows :~/windows$ cmake --build <01.hello> //構文エラー

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

chyfarm@chyfarm-VirtualBox:~/windows/01.hello/build$ cmake

chyfarm@chyfarm-VirtualBox:~/windows/01.hello/build$ cmake ..

どこがProject rootなのかを教えましょう。今回は一つ上のdirectoryだから..

投稿2018/12/27 06:16

yumetodo

総合スコア5850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/12/27 07:49

そう考えるんですか、 (うーーん、どこなんだろう。とりあえず試してみよう。。。)
Chironian

2018/12/27 08:11

project rootは、ルートのCMakeLists.txtがあるフォルダですよ。CMakeLists.txtが1つしかないなら、そのフォルダを指定します。相対パスでも絶対パスでもどちらで指定してもOKです。 ところで、CMakeはWindows + Visual Studioにも強力に対応していますよ。
退会済みユーザー

退会済みユーザー

2018/12/27 08:24

お世話になります。 ~/windows/01.hello$ cmake --build <windows/01.hello> としたのですが、ダメでした。01.helloがそのフォルダですが、、、 >ところで、、、 ↑ご紹介いただいたサイトをそのまま順に習ってまねしてます。)
yumetodo

2018/12/27 12:35

えっ、私 ~/windows/01.hello/build$ cmake .. って書いたはずなのになんでスルーされている・・・?
yumetodo

2018/12/27 12:37 編集

しかも 今回は一つ上のdirectoryだから.. って書いたはずなのにこれもスルーされている・・・? .. ですよ?
yumetodo

2018/12/27 12:36

基本的には 1. project rootにbuild directory作る 2. cd そこ 3. cmake .. なんですよ。細かいオプションとかは置いておいて。
yumetodo

2018/12/27 12:39

cmake --buildってむしろ何だと思って調べたら、それは今回なら cmake .. のあとに cmake --build . とやると例えばcmakeでmakeを使うようにしてたときに make とやる代わりになる、ということらしい。
退会済みユーザー

退会済みユーザー

2018/12/27 12:52

yumetodoさん、おせわになるね、無視してんじゃないよ。 始めに書いてくれたことがこっちにとっては分からないから、返答のしようが無かっただけ。初心者ってのはそういうものだよ。 https://stackoverflow.com/questions/16319292/cmake-error-could-not-load-cache 貴君が2つ上に書いてくれた件は、いろいろ見てきたらあちらでも書いている人が居た。 今はこんなメッセージ↓が出ていて、調べている。 chyfarm@chyfarm-VirtualBox:~/windows$ cmake --build ./01.hello ↓ Error: could not load cache それでほかを見たら、どうもcacheをインストール時に壊したのでは、、と言う人が居た。 https://stackoverflow.com/questions/39588836/why-do-i-need-force-to-override-a-cmake-option
退会済みユーザー

退会済みユーザー

2018/12/27 12:58

壊したならどうしたものだろう?と調べていたら、 cmake-gui を使ってもbuildできるらしい、と知り、インストールしてみた。 $ cmake-gui --build ./01.hello そうしたら、同じCMake(?)なのに、Cmake Cxx はどこにあるかを指定せよ、と出てきて、ますます複雑になってしまった。 こまったもんじゃy!!
退会済みユーザー

退会済みユーザー

2018/12/27 12:59

しまいに書いてくれた「ビルドクリーンテスト」っていうのをこれから読んでみるよ。Thanks!!
yumetodo

2018/12/27 14:18

だから--buildを指定するのが違うんです。 とりあえず cd ~/windows/01.hello/build cmake .. してください。
yumetodo

2018/12/27 14:19

>それでほかを見たら、どうもcacheをインストール時に壊したのでは、、と言う人が居た。 それはすでに cmake .. したあとでbuildの中身を消してしまったときの話で今は関係なし。だって何もしていないから。
yumetodo

2018/12/27 14:19

>cmake-gui --build ./01.hello cmake-guiを使うときは何も指定しないのが通例。
yumetodo

2018/12/27 14:20

とにかく--buildのことは忘れてください。
yumetodo

2018/12/27 14:27 編集

そもそもcmakeはいわゆるpre-make系ツールと言われていて、実際にビルドの指示をだす連中(gnumakeとかmsbuildとかの設定)を生成するもの。(同時にビルドの依存関係などのキャッシュも作る) ただcmakeはそれに加えて実際にビルドの指示を出す連中を動かす機能も持っていてそれが--build。 言うまでもなくまず実際にビルドの指示をだす連中を生成しなければ動かしようもない。 なのでとりあえず--buildのことは忘れてください。
退会済みユーザー

退会済みユーザー

2018/12/27 23:51

yumetodoさん、おはです。 やってみたけど、やっぱりエラーになってしまうよ。 //////////// ~/windows/01.hello/build$ cmake .. -- The CXX compiler identification is unknown CMake Error at CMakeLists.txt:1 (project): No CMAKE_CXX_COMPILER could be found. Tell CMake where to find the compiler by setting either the environment variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. -- Configuring incomplete, errors occurred! See also "/home/chyfarm/windows/01.hello/build/CMakeFiles/CMakeOutput.log". See also "/home/chyfarm/windows/01.hello/build/CMakeFiles/CMakeError.log". (今日はこれから出張なのでしばらくOff the lineになります。)
yumetodo

2018/12/28 05:07

進捗が生まれたようで幸いです。エラーを解釈していきましょう。 >The CXX compiler identification is unknown というのは、C++のコンパイラが見つからないことを指します。gccやclangがインストールされていないのではないかと思われます。 Ubuntuということだったので、とりあえずは sudo apt install gcc されてはいかがでしょうか? コンパイルするものによってはそれだとコンパイラが古い事もありますがそれはまた別の話。
退会済みユーザー

退会済みユーザー

2018/12/29 05:13

yumetodoさん、 やれやれ、帰宅しました~ 早速、ためします。Thaks!!
yumetodo

2018/12/29 05:41

(1/6まで反応が大幅に遅れる可能性があります、あしからず)
退会済みユーザー

退会済みユーザー

2018/12/29 05:50

yumetodoさん、おかげさま、出来た~! gcc はあったのに、clang が不足でした。 これで次のステップへ進めそう、あーよかった。 yumetodoさんに良い新年が来ます様に。
yumetodo

2018/12/29 05:53

良いお年を!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問