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

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

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

Cygwinは、Unixのような環境を、Windows上で構築させるコマンドラインインターフェースです。

C++

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

MinGW

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

Q&A

解決済

1回答

1187閲覧

windows環境で、gmp(gnu mp)のmakeでエラーがでます。

gohpme534

総合スコア1

Cygwin

Cygwinは、Unixのような環境を、Windows上で構築させるコマンドラインインターフェースです。

C++

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

MinGW

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

0グッド

0クリップ

投稿2022/07/04 06:48

久々に環境構築したのですが、情報が少なくて困っています。
環境は以下の通りです。
c:/_MyTools/_build/以下に次が配置してあります。

cygwin64 ※最新のインストーラーよりインストール
llvm-mingw-20220323-msvcrt-x86_64
gmp-6.2.1 ※gmp-6.2.1.tar.lzを解答したもの

cygwinには、デフォルトのパッケージの他、mp4、makeを追加してあります。
llvmのコンパイラg++,clang++の動作は確認済みです。
両者binへのPATHも通してあります。

以下問題なのですが、ターミナルからgmp-6.2.1ディレクトリへ入り、
./configure --enable-cxx を実行して、一応通りますが、gmp-mparam.hというファイルが、0kbyteで生成されます。

make を実行すると、gmp-impl.hの146行目のinclude文でgmp-mparam.hファイルが無いというエラーが発生します。
試しにその一行をコメントアウトしてmakeしても、次の様なエラーがでます。

clang-14: error: no such file or directory: 'add.c'
clang-14: error: no input files
make[2]: *** [Makefile:492: add.lo] Error 1
make[2]: Leaving directory '/cygdrive/c/_MyTools/_build/gmp-6.2.1/mpn'
make[1]: *** [Makefile:997: all-recursive] Error 1
make[1]: Leaving directory '/cygdrive/c/_MyTools/_build/gmp-6.2.1'
make: *** [Makefile:787: all] Error 2

確認しましたが、gmp-6.2.1/mpn/add.cファイルは存在しますが、0kbytesです。
他にも0kbytesのファイルが多数あります。

何か足りてないのでしょうか?
解決方法が分かる方いたら回答お願いいたします。

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

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

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

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

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

jbpb0

2022/07/05 03:09 編集

> ./configure --enable-cxx を実行 の時に、たぶん config.status: linking mpn/generic/add.c to mpn/add.c (中略) config.status: linking mpn/x86/coreisbr/gmp-mparam.h to gmp-mparam.h みたいに表示されてたと思うのですが、上記の「linking」はシンボリック・リンクを作成した、という意味かもしれません もしそうなら、コンパイラがシンボリック・リンクを認識できなくて > no such file or directory となってるのかもしれませんので、環境変数「CYGWIN」を設定してから「./configure...」をやり直したら、うまくいくかもしれません https://takuya-1st.hatenablog.jp/entry/2014/05/23/043956 https://senooken.jp/post/2014/04/30/ https://takuya-1st.hatenablog.jp/entry/20110705/1309896867 実際に試してないので、外してたらごめんなさい
guest

回答1

0

ベストアンサー

質問者が試みている方法は,
cygwinのmakeでWindows標準のパスしか理解しないclangのコンパイラを制御しているので,
それをうまく解決するのは,
自分で落とし穴を掘ってどうやったらその上を歩いて穴に落ちずに進めるか?
を考えるようなものでなかなか難しいかと思います。

元々は「gmp」を利用したプログラムを書くのが主目的のはずなので,
ビルド済みのパッケージを利用してはどうでしょうか?

独断と偏見でフローにしてみました。

フロー

一応,msys2での構築方法の一例を以下に示します。

  1. msys2のインストーラをダウンロード。実行してインストール。
  2. MSYS2 MSYSのショートカットを起動
  3. pacman -Syuで最新にアップデート。その後のメッセージでY(Enter)で勝手に終了。
  4. MSYS2 MinGW Clang x64のショートカットを起動
  5. pacman -S mingw-w64-clang-x86_64-toolchain を実行。(clang関係一式)
  6. pacman -S mingw-w64-clang-x86_64-gmp を実行。(gmpパッケージ)
  7. pacman -S mingw-w64-clang-x86_64-make を実行。(makeをインストール)

その後のビルドは4.のショートカットから起動して行う。
適宜不足のパッケージは
https://packages.msys2.org/package/mingw-w64-clang-x86_64-gmp?repo=clang64
等から検索してインストールする。

投稿2022/07/05 15:31

ujimushi_sradjp

総合スコア2091

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

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

gohpme534

2022/07/08 08:04

詳しい解説ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問