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

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

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

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

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

C++

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

MinGW

MinGW(ミン・ジー・ダブリュー)は GNUツールチェーンのWindows移植版です。 ランタイムライブラリと開発ツールで構成されています。

Q&A

1回答

4224閲覧

MinGW64でのCMAKEビルドについて

freeradical

総合スコア8

CMake

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

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

C++

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

MinGW

MinGW(ミン・ジー・ダブリュー)は GNUツールチェーンのWindows移植版です。 ランタイムライブラリと開発ツールで構成されています。

0グッド

0クリップ

投稿2016/02/08 02:11

編集2022/01/12 10:55

お世話になります。

Windows7 64bit環境にMinGW64+msysを入れています。

CMAKE(cmake-3.2.3またはcmake-3.5.0)をビルドしようとしているのですが、
configureを実行すると、すぐにエラーとなり、

--------------------------------------------- CMake 3.2.3, Copyright 2000-2015 Kitware, Inc. Found GNU toolchain C compiler on this system is: gcc --------------------------------------------- Error when bootstrapping CMake: Cannot find appropriate C++ compiler on this system. Please specify one using environment variable CXX. See cmake_bootstrap.log for compilers attempted. ---------------------------------------------

Bootstrap.cmk/cmake_bootstrap.logに、以下2種類のエラーメッセージが出ています。

In file included from c:/mingw64/x86_64-w64-mingw32/include/c++/iosfwd:40:0,^M from c:/mingw64/x86_64-w64-mingw32/include/c++/ios:38,^M from c:/mingw64/x86_64-w64-mingw32/include/c++/ostream:38,^M from c:/mingw64/x86_64-w64-mingw32/include/c++/iostream:39,^M from cmake_bootstrap_4468_test.cxx:3:^M c:/mingw64/x86_64-w64-mingw32/include/c++/bits/postypes.h:40:35: fatal error: cw char: No such file or directory^M compilation terminated.^M
cmake_bootstrap_4468_test.cxx:5:23: fatal error: iostream.h: No such file or dir ectory^M compilation terminated.^M Test failed to compile

findで、iostream.hとcwcharを見つけたので、
PATHを通したのですが、それでもNo such fileが解決しませんでした。

どなたか、ご存知でしたら教えていただきたくお願いいたします。

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

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

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

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

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

guest

回答1

0

こんにちは。

私は、CMakeを使ってビルドしてますがCMake自身をビルドしたことはないので、分かる範囲で回答してみます。

iostreamとcwcharは標準ライブラリのヘッダですので通常はコンパイラに含まれています。
調べてみたところ、MinGWの5.2.0にiostreamとcwcharは当然ですが含まれてました。
ただし、iostream.hは含まれてませんでした。実は、iostream.hがiostreamへ変更されて久しいです。MinGWは既にiostream.hのサポートをやめているようです。

cwcharは元々wchar.hです。iostream.hがiostreamへ変更された頃に変更されてます。
また、CMakeの開発者がこの辺の事情を把握しそこなっているとは考えにくいです。
ビルドのオプション設定を何かミスされているということはないでしょうか?
どんな手順でビルドされたか開示されれば、CMake自身のビルド経験者から回答あるかもです。

ところで、なぜCMakeをビルドされているのでしょうか? Windows用ならプリビルド版があります。
プリビルド版が存在しない環境用にビルドされているのでしたら、その環境を開示されればそれについて知っている人から回答あるかも知れません。

投稿2016/02/08 05:54

Chironian

総合スコア23272

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

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

freeradical

2016/02/08 06:55

ご回答ありがとうございました。 ビルド手順ですが、あまり凝ったことはせずに、`./configure --prefix=/usr/local`と打っただけです。 なるほど、プリビルド版というのがあるのですね。 実は、ほとんど体系的な前提知識なしにやっています。 MinGWの5.2.0にはヘッダが入っていた、とのことですが、この5.2.0というのはgccのバージョンのことでしょうか?私の環境はgccが5.3.0なので、バージョンダウンして試してみたいと思います。 ありがとうございました。
Chironian

2016/02/08 07:10

MinGW≒gccですね。純粋なWindows上で走るアプリをビルドできるgccと考えてます。 cwchar等は標準ライブラリのヘッダですので、5.3.0にも入ってます。たまたま見たのが5.2.0だっただけです。 ./configure時に、追加オプションが必要なのではないでしょうか? cmakeのドキュメントやcmake自身をビルドした人の記事等を参考にされたでしょうか? msysはほとんど使ってないので私は良く分からないのです。ごめんなさい。
Chironian

2016/02/08 07:24

> なるほど、プリビルド版というのがあるのですね。 たぶん、ほとんどの人はプリビルド版をダウンロードして使っていると思います。 WindowsでCMakeを使いたいのであれば、本家からプリビルド版(binary)をダウンロードすれば十分です。https://cmake.org/download/ もし、ビルド・システムの学習と言う意味でしたら、もう少し情報を探しやすいプロジェクトをターゲットにした方が良いと思います。CMakeはビルドツールなので、CMakeでビルドしている記事が多数見つかってしまい、それに隠れてCMakeをビルドしている記事はなかなか見つからないです。
freeradical

2016/02/12 09:55

ご返信ありがとうございました。 確かにおっしゃる通り学習目的なので、もっと簡単なモノが良いのかもしれません。 最後に、しつこいですが。 質問の一部を変更し追加情報を記載しました。 実は、その後iostream.hとcwcharを見つけたので、 PATHを通したのですが、それでもNo such fileが解決しませんでした。 また、./configure実行直後に画面に現れるメッセージを追加していますが、 Cannot find appropriate C++ compiler on this system と出ています。 C++の何かが適切でないということらしいです。 -vオプションをつけてバージョンを表示させると、 gcc version 5.3.0 と出るのですが、 g++とかではなくgccでよいのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問