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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

27378閲覧

Windows10環境でmakeが上手く実行できない

watarusugimoto

総合スコア47

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2018/12/23 20:42

編集2018/12/23 23:14

makeが上手く通らない

C言語で書かれたソースコードをコンパイル・実行したいのですが、Linuxで動かす様に設定されているようで上手く動きませんでした。

「process_begin: CreateProcess(NULL, gcc -c -o OBJ/Activate.o Activate.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g, ...) failed.」「make (e=2): 指定されたファイルが見つかりません。」と言ったエラーが出ています。
コマンドプロンプトからmakeと打ち込むと、下記のエラーが発生するためGnuWin32のパスは通っていると思います。

こちらのページにあるのと同じように、コマンドプロンプト以外でgccというコマンドを読み取れなくなっているという可能性もあるのかなと思うのですが、解決方法が分かりません。

どなたかご教授をお願いいたします。

使用環境

  • OS:Windows10 64bit

  • 開発環境:CLion(JetBrain)

  • gcc: C:\Program Files(x86)下へGnuWin32インストール

実行できないmakefileファイル

LKH-2.0.9/Makefile
ここから実行するのだと思います。
実行すると、SRCファイルへ飛びます。

Makefile

1all: 2 $(MAKE) -C SRC all 3clean: 4 $(MAKE) -C SRC clean

SRCファイル内のmakefileが下記です。

makefile

1TREE_TYPE = TWO_LEVEL_TREE 2# TREE_TYPE = THREE_LEVEL_TREE 3# TREE_TYPE = ONE_LEVEL_TREE 4 5 CC = gcc 6IDIR = INCLUDE 7ODIR = OBJ 8CFLAGS = -O3 -Wall -I$(IDIR) -D$(TREE_TYPE) -g 9 10_DEPS = Delaunay.h GainType.h Genetic.h GeoConversion.h Hashing.h \ 11 Heap.h LKH.h Segment.h Sequence.h gpx.h 12 13DEPS = $(patsubst %,$(IDIR)/%,$(_DEPS)) 14 15_OBJ = Activate.o AddCandidate.o AddExtraCandidates.o \ 16 AddTourCandidates.o AdjustCandidateSet.o AdjustClusters.o \ 17 AllocateStructures.o Ascent.o \ 18 Best2OptMove.o Best3OptMove.o Best4OptMove.o Best5OptMove.o \ 19 BestKOptMove.o Between.o Between_SL.o Between_SSL.o \ 20 BridgeGain.o BuildKDTree.o C.o CandidateReport.o \ 21 ChooseInitialTour.o Connect.o CreateCandidateSet.o \ 22 CreateDelaunayCandidateSet.o CreateNNCandidateSet.o \ 23 Create_POPMUSIC_CandidateSet.o CreateQuadrantCandidateSet.o \ 24 Delaunay.o Distance.o Distance_SPECIAL.o eprintf.o ERXT.o \ 25 Excludable.o Exclude.o FindTour.o FixedOrCommonCandidates.o \ 26 Flip.o Flip_SL.o Flip_SSL.o Forbidden.o FreeStructures.o \ 27 fscanint.o Gain23.o GenerateCandidates.o Genetic.o \ 28 GeoConversion.o GetTime.o GreedyTour.o Hashing.o Heap.o \ 29 IsBackboneCandidate.o IsCandidate.o IsCommonEdge.o \ 30 IsPossibleCandidate.o KSwapKick.o LinKernighan.o LKHmain.o \ 31 Make2OptMove.o Make3OptMove.o Make4OptMove.o Make5OptMove.o \ 32 MakeKOptMove.o MergeTourWithBestTour.o MergeWithTourIPT.o \ 33 Minimum1TreeCost.o MinimumSpanningTree.o NormalizeNodeList.o \ 34 NormalizeSegmentList.o OrderCandidateSet.o PatchCycles.o \ 35 printff.o PrintParameters.o \ 36 Random.o ReadCandidates.o ReadEdges.o ReadLine.o \ 37 ReadParameters.o ReadPenalties.o ReadProblem.o RecordBestTour.o \ 38 RecordBetterTour.o RemoveFirstActive.o \ 39 ResetCandidateSet.o RestoreTour.o SegmentSize.o Sequence.o \ 40 SFCTour.o SolveCompressedSubproblem.o \ 41 SolveDelaunaySubproblems.o SolveKarpSubproblems.o \ 42 SolveKCenterSubproblems.o SolveKMeansSubproblems.o \ 43 SolveRoheSubproblems.o SolveSFCSubproblems.o SolveSubproblem.o \ 44 SolveSubproblemBorderProblems.o SolveTourSegmentSubproblems.o \ 45 Statistics.o StoreTour.o SymmetrizeCandidateSet.o \ 46 TrimCandidateSet.o WriteCandidates.o WritePenalties.o \ 47 WriteTour.o MergeWithTourGPX2.o gpx.o 48 49OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ)) 50 51$(ODIR)/%.o: %.c $(DEPS) 52 $(CC) -c -o $@ $< $(CFLAGS) 53 54.PHONY: 55 all clean 56 57all: 58 $(MAKE) LKH 59 60LKH: $(OBJ) $(DEPS) 61 $(CC) -o ../LKH $(OBJ) $(CFLAGS) -lm 62 63clean: 64 /bin/rm -f $(ODIR)/*.o ../LKH *~ ._* $(IDIR)/*~ $(IDIR)/._* 65

エラー

C

1"C:\Program Files (x86)\GnuWin32\bin\make.exe" -f C:/workspace/kaggle/santa/LKH-2.0.9/Makefile all 2C:/Program Files (x86)/GnuWin32/bin/make -C SRC all 3make[1]: ディレクトリ `C:/workspace/kaggle/santa/LKH-2.0.9/SRC' に入ります 4C:/Program Files (x86)/GnuWin32/bin/make LKH 5make[2]: ディレクトリ `C:/workspace/kaggle/santa/LKH-2.0.9/SRC' に入ります 6gcc -c -o OBJ/Activate.o Activate.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g 7make[2]: ディレクトリ `C:/workspace/kaggle/santa/LKH-2.0.9/SRC' から出ます 8process_begin: CreateProcess(NULL, gcc -c -o OBJ/Activate.o Activate.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g, ...) failed. 9make[1]: ディレクトリ `C:/workspace/kaggle/santa/LKH-2.0.9/SRC' から出ます 10make (e=2): 指定されたファイルが見つかりません。 11make[2]: *** [OBJ/Activate.o] エラー 2 12make[1]: *** [all] エラー 2 13make: *** [all] エラー 2

ファイル構成

C

1LKH-2.0.9 2│ E3k.0.par 3│ E3k.0.pi 4│ E3k.0.tsp 5│ Makefile 6│ pr2392.par 7│ pr2392.tsp 8│ README.txt 9│ xray14012_1.par 10│ xray14012_1.tsp 1112├─.idea 13│ encodings.xml 14│ LKH-2.0.9.iml 15│ misc.xml 16│ modules.xml 17│ workspace.xml 1819├─DOC 20│ LKH-2_USER_GUIDE.pdf 21│ LKH_Genetic.pdf 22│ LKH_REPORT.pdf 23│ POPMUSIC_REPORT.pdf 24│ TSPLIB_DOC.pdf 2526└─SRC 27 │ Activate.c 28 │ AddCandidate.c 29 │ AddExtraCandidates.c 30 │ AddTourCandidates.c 31 │ AdjustCandidateSet.c 32 │ AdjustClusters.c 33 │ AllocateStructures.c 34 │ Ascent.c 35 │ Best2OptMove.c 36 │ Best3OptMove.c 37 │ Best4OptMove.c 38 │ Best5OptMove.c 39 │ BestKOptMove.c 40 │ Between.c 41 │ Between_SL.c 42 │ Between_SSL.c 43 │ BridgeGain.c 44 │ BuildKDTree.c 45 │ C.c 46 │ CandidateReport.c 47 │ ChooseInitialTour.c 48 │ Connect.c 49 │ CreateCandidateSet.c 50 │ CreateDelaunayCandidateSet.c 51 │ CreateNNCandidateSet.c 52 │ CreateQuadrantCandidateSet.c 53 │ Create_POPMUSIC_CandidateSet.c 54 │ Delaunay.c 55 │ Distance.c 56 │ Distance_SPECIAL.c 57 │ eprintf.c 58 │ ERXT.c 59 │ Excludable.c 60 │ Exclude.c 61 │ FindTour.c 62 │ FixedOrCommonCandidates.c 63 │ Flip.c 64 │ Flip_SL.c 65 │ Flip_SSL.c 66 │ Forbidden.c 67 │ FreeStructures.c 68 │ fscanint.c 69 │ Gain23.c 70 │ GenerateCandidates.c 71 │ Genetic.c 72 │ GeoConversion.c 73 │ GetTime.c 74 │ gpx.c 75 │ GreedyTour.c 76 │ Hashing.c 77 │ Heap.c 78 │ IsBackboneCandidate.c 79 │ IsCandidate.c 80 │ IsCommonEdge.c 81 │ IsPossibleCandidate.c 82 │ KSwapKick.c 83 │ LinKernighan.c 84 │ LKHmain.c 85 │ Make2OptMove.c 86 │ Make3OptMove.c 87 │ Make4OptMove.c 88 │ Make5OptMove.c 89 │ Makefile 90 │ MakeKOptMove.c 91 │ MergeTourWithBestTour.c 92 │ MergeWithTourGPX2.c 93 │ MergeWithTourIPT.c 94 │ Minimum1TreeCost.c 95 │ MinimumSpanningTree.c 96 │ NormalizeNodeList.c 97 │ NormalizeSegmentList.c 98 │ OrderCandidateSet.c 99 │ PatchCycles.c 100 │ printff.c 101 │ PrintParameters.c 102 │ Random.c 103 │ ReadCandidates.c 104 │ ReadEdges.c 105 │ ReadLine.c 106 │ ReadParameters.c 107 │ ReadPenalties.c 108 │ ReadProblem.c 109 │ RecordBestTour.c 110 │ RecordBetterTour.c 111 │ RemoveFirstActive.c 112 │ ResetCandidateSet.c 113 │ RestoreTour.c 114 │ SegmentSize.c 115 │ Sequence.c 116 │ SFCTour.c 117 │ SolveCompressedSubproblem.c 118 │ SolveDelaunaySubproblems.c 119 │ SolveKarpSubproblems.c 120 │ SolveKCenterSubproblems.c 121 │ SolveKMeansSubproblems.c 122 │ SolveRoheSubproblems.c 123 │ SolveSFCSubproblems.c 124 │ SolveSubproblem.c 125 │ SolveSubproblemBorderProblems.c 126 │ SolveTourSegmentSubproblems.c 127 │ Statistics.c 128 │ StoreTour.c 129 │ SymmetrizeCandidateSet.c 130 │ TrimCandidateSet.c 131 │ WriteCandidates.c 132 │ WritePenalties.c 133 │ WriteTour.c 134135 ├─INCLUDE 136 │ Delaunay.h 137 │ GainType.h 138 │ Genetic.h 139 │ GeoConversion.h 140 │ gpx.h 141 │ Hashing.h 142 │ Heap.h 143 │ LKH.h 144 │ Segment.h 145 │ Sequence.h 146147 └─OBJ 148

CC = cmd \C gccとした結果

以下の様なエラーが出ており、上手くコンパイルできていないと思われます。
OBJフォルダの中も空となっています。
どなたかご教授願います。

C

1"C:\Program Files (x86)\GnuWin32\bin\make.exe" -f C:/workspace/kaggle/santa/LKH-2.0.9/SRC/Makefile all 2C:/Program Files (x86)/GnuWin32/bin/make LKH 3make[1]: ディレクトリ `C:/workspace/kaggle/santa/LKH-2.0.9/SRC' に入ります 4cmd \C gcc -c -o OBJ/Activate.o Activate.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g 5Microsoft Windows [Version 10.0.17134.472] 6(c) 2018 Microsoft Corporation. All rights reserved.

Activate.oしかコンパイルが実行されていない様に見える

CC = cmd \C gccとした結果を見ると、エラーも出ず問題なく実行されている様に見えます。
ただ実行すると、実行し続けている状態になっており、停止しませんでした。
また、Activate.oのほかにも大量の.oファイルが有るのに実行されず、一つ目のActivate.oのコンパイルで停止しているのが何故なのか分かりません。文字コードはUTF-8となっています。

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

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

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

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

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

guest

回答2

0

ベストアンサー

コンパイルしたいプログラムは下記サイトのLKH-2.0.9.tgzであってますでしょうか?
http://akira.ruc.dk/~keld/research/LKH/
手元の環境ではMSYS2で、いくつか警告はありましたが、コンパイル出来ました。取りあえずコンパイルしたいだけであればMSYS2を試してください。

  1. MSYS2をインストール
  2. MSYS2のmingw64.exeからmingw64環境MSYS2を起動(32bit環境の場合はmingw32.exe)
  3. 次のコマンドでgcc等をインストール(toolchainはgccやmakeがまとまったパッケージ)

pacman -Sy mingw-w64-x86_64-toolchain
(32bit環境の場合はmingw-w64-i686-toolchainをインストール)
4. tarでtgzを展開し、ディレクトリに移動
5. mingw32-makeでmake実行

GnuWin32はGNUの各ソフトを個別にWindows上で使えるようにするためのバイナリセットです。対して、MSYS2は擬似的なUNIX/Linux環境を提供します。GnuWin32の各ツールでUINX/Linux向けのソフトをコンパイルなどする場合、UNIX/Linuxで前提としている環境を自分で用意する必要が出てくることがあるため、UNIX/LinuxとWindows両方にかなり詳しくないと難しいです。その場合は、MSYS2を使った方が簡単に行える場合があります。

ただし、MSYS2も擬似的にUNIX/Linux環境に近づけているだけで完全なUNIX/Linux環境ではありません。UNIX/Linux環境の依存度が高い場合、Cygwin、WSL、仮想環境上のLinux等を検討する必要があります。


なお、エラーの原因ですが、gccへのパス等に空白があるため、そこで区切られてしまっている可能性があります。gcc-vと実行したときに表示される各パスに空白が混ざるとうまくいかない場合がありました。

投稿2018/12/24 01:30

raccy

総合スコア21735

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

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

watarusugimoto

2018/12/24 01:36

ありがとうございます! 大変助かります。 さっそくやってみたいと思います。
guest

0

素直に以下では駄目なのでしょうか?

cmd

1> cd C:/workspace/kaggle/santa/LKH-2.0.9 2> make

投稿2018/12/23 22:45

hichon

総合スコア5737

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

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

watarusugimoto

2018/12/23 22:47

回答ありがとうございます。 説明が不足していました、すいません。 その様に実行していますが、エラーが発生している状況です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問