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

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

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

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

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

Q&A

解決済

1回答

5879閲覧

cmakeでUnknown arguments specifiedが出る

l_h_l_h

総合スコア22

CMake

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

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

0グッド

0クリップ

投稿2019/03/01 16:19

編集2019/03/02 06:56

こちらのサイトの手順を行っていたところ「ライブラリのビルド」の箇所でエラーが発生し詰まってしまいました
エラーメッセージは下記のとおりです

CMake Error at CMakeLists.txt:7 (if): if given arguments: "STREQUAL" "" Unknown arguments specified -- Configuring incomplete, errors occurred! See also "C:/game-programmer-book-build/src/GameLibs/CMakeFiles/CMakeOutput.log".

また、CMakeLists.txtは以下の通りです

txt

1cmake_minimum_required (VERSION 3.8) 2project ( BuildGameLibs ) 3 4set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "" FORCE) 5set(CMAKE_SUPPRESS_REGENERATION true) 6 7if( $ENV{GAME_LIB_DIR} STREQUAL "" ) 8 message( FATAL_ERROR "GAME_LIB_DIR is not defined. You must set GAME_LIB_DIR !" ) 9endif() 10 11add_subdirectory( Modules ) 12add_subdirectory( 2DActionGame ) 13add_subdirectory( 2DGraphics1 ) 14add_subdirectory( 2DTransform ) 15add_subdirectory( 3DCollision1 ) 16add_subdirectory( 3DGraphics1 ) 17add_subdirectory( 3DHardware1 ) 18add_subdirectory( Final ) 19add_subdirectory( InputDevices ) 20add_subdirectory( Loading ) 21add_subdirectory( Realtime ) 22add_subdirectory( Sequence1 ) 23add_subdirectory( Sound1 ) 24add_subdirectory( Sound2 ) 25

STREQUALと""の比較の箇所で怒られているようですが、よくわかりません

環境変数名は何度も確認しました
また、GameProgrammerBookとgame-programmer-book-buildの2通りを試しました
Visual Studioについて、C++,Windows,SDKなどの記載のあるものは一通りインストールしました

また、暫くして再度実行したところ、以下のような結果が得られました

PS C:\game-programmer-book-build\src\GameLibs\build> cmake .. -- Configuring done -- Generating done -- Build files have been written to: C:/game-programmer-book-build/src/GameLibs

しかし何も起こりませんでした

原因の分かる方いらっしゃいましたら、ご教授願います

追記:上記のエラーは何とかなったのですが、ライブラリのビルドの段階で MSB3073 コマンド"setlocal というエラーが各ファイルで発生しました
サンプルのビルドは各ヘッダーファイルが開けず no such or directoryエラーになります
ライブラリのビルドができていないのが原因かと思われますが、MSB3073で調べても情報が得られません
何かわかることはないでしょうか

追記2:すみません、ディレクトリの階層が1段階深くなってしまっていました
修正したら解決しました
お騒がせして申し訳ありません

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんにちは。

環境変数 GAME_LIB_DIR が定義されていないことが原因です。
リンク先のページの「環境変数の準備」のところに記載されているようです。

因みに、STREQUALは文字列が一致しているかどうかを判定する2項演算子です。文字列限定の==みたいなものですね。そして、GAME_LIB_DIR環境変数が未定義の場合、if( $ENV{GAME_LIB_DIR} STREQUAL "" )は、if( STREQUAL "" )と展開されてしまいます。C++で、if ( == "")と書いているようなものなので文法違反になります。

投稿2019/03/01 16:29

Chironian

総合スコア23272

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

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

l_h_l_h

2019/03/01 16:40

回答ありがとうございます 環境変数は確かに設定しているので、変数値がおかしいのかなと思います サイトの説明では「GameProgrammerBook」となっていますがgit cloneしたのフォルダの名前は「game-programmer-book-build」となっており、「GameProgrammerBook」という文字列はどこにも出現していないんです また、試してみたところ「サンプルのビルド」の方はエラーが出ずに行うことができました 何かわからないでしょうか……?
Chironian

2019/03/01 17:11

> 環境変数は確かに設定しているので、 間違いなく設定していればそのエラーは出ない筈です。(値によっては別のエラーは出るかも知れませんが。) 設定した環境変数の名前にミスはないでしょうか? 再確認されてみて下さい。 > git cloneしたのフォルダの名前は「game-programmer-book-build」となっており クローン先の指定を省略するとそうなると思います。 サイトには「ここでは、 C:\GameProgrammerBook という場所にクローンすると想定して話を進めます。」と書かれているので、クローン先を指定することを想定しているようです。
l_h_l_h

2019/03/01 17:29

すみません、クローン先の指定をサイトのものに合わせて手順を初めからやり直してみたところ上手く動きました 変数の値がどこかでおかしくなっていたのかもしれません ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問