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

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

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

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

Q&A

解決済

3回答

1920閲覧

cygwinでmakeコマンドのappファイルへの変換ができません。

saje

総合スコア17

Cygwin

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

0グッド

0クリップ

投稿2019/03/20 03:36

編集2019/03/20 06:43

前提・実現したいこと。

cygwinでmakeコマンドのappファイルへ変換したいのですが変換ができません。

発生している問題・エラーメッセージ

変換しようとすると、

cd '/cygdrive/c/Users/Desktop/NEWET2018/hrp2/sdk/workspace' make app=L2 Makefile:94: Desktop/NEWET2018/hrp2/sdk/workspace/linetrace/Makefile.inc: No such file or directory make: *** ターゲット 'Desktop/NEWET2018/hrp2/sdk/workspace/linetrace/Makefile.inc' を make するルールがありません. 中止.

と表示されます。

Makefileの内容

# # Makefile for a workspace of Platform. # # # Include configurations of SDK # SDKDIR = .. WSPDIR = $(basename $(PWD)) include $(SDKDIR)/Makefile.sdk.conf # Configuration SRCLANG := c KERNEL := hrp2 # # Functions # get_relpath = $(shell perl -MFile::Spec -e "print File::Spec->abs2rel(q($1),q($2))") # # Paths # KERNELDIR := $(PWD)/$(SDKDIR)/$(EV3RT_BASE_DIR) OBJDIR := $(PWD)/$(SDKDIR)/$(EV3RT_PRJ_OBJ_DIR) LIBKERNELDIR := $(PWD)/$(SDKDIR)/$(EV3RT_LIBKERNEL_DIR) TARGETDIR := $(PWD)/$(KERNELDIR)/target/ev3_gcc # Object files OBJFILENAME := $(KERNEL) ifneq (, $(findstring CYGWIN, $(shell uname))) OBJFILENAME := $(OBJFILENAME).exe endif OBJBINARY := $(OBJDIR)/$(KERNEL).bin # # Determine Makefile for application # OUTPUT: # $(APPLDIR): Absolute path of application folder # $(MKFILENAME): File name of Makefile # $(MKFILE_DIR): Absolute path of the folder holding Makefile # ifdef img APPLDIR := $(PWD)/$(img) MKFILENAME := Makefile.img endif ifdef app APPLDIR := $(PWD)/$(app) MKFILENAME := Makefile.app endif MKFILE_DIR := $(APPLDIR) ifeq (,$(wildcard $(mkfile_dir)/$(MKFILENAME))) MKFILE_DIR := $(SDKDIR)/common endif # Target for an application (static) # ifdef img include $(APPLDIR)/Makefile.inc ifeq (,$(wildcard $(LIBKERNELDIR)/libkernel.a)) # Build libkernel.a if not exist img: $(APPLDIR) $(LIBKERNELDIR)/libkernel.a prepare-obj-folder else img: $(APPLDIR) prepare-obj-folder endif @cd $(OBJDIR) && \ make offset.h kernel_cfg.h && \ make -j8 > /dev/null && \ arm-none-eabi-objcopy -O binary \ $(OBJFILENAME) $(call get_relpath,$(OBJBINARY),$(OBJDIR)) @mkimage -A arm -O linux -T kernel -C none -a 0xc0008000 -e 0xc0008000 \ -n "TOPPERS/$(KERNEL) Kernel (EV3)" \ -d $(call get_relpath,$(OBJBINARY),$(PWD)) uImage @chmod +x uImage @cp $(OBJDIR)/$(OBJFILENAME) $(PWD) $(LIBKERNELDIR)/libkernel.a: prepare-obj-folder @cd $(OBJDIR) && \ make clean && \ make libkernel.a > /dev/null && \ cp libkernel.a $(LIBKERNELDIR)/libkernel.a endif # # Target for an application module (dynamic) # ifdef app include $(APPLDIR)/Makefile.inc app: $(APPLDIR) prepare-obj-folder @cd $(OBJDIR) && \ make module_cfg.h && \ make -j8 && \ cp app $(PWD)/app # && cp app $(PWD)/app-$(subst /,,$(app)) endif usage: @echo make img="<folder>" @echo make app="<folder>" @echo "make upload [ip=<ev3_ip_address>] [from=<local_file_name>] [to=<remote_file_name>]" @echo "make uploadimg [ip=<ev3_ip_address>] [from=<local_image_path>]" # TODO: check file name carefully ifndef ip # Default IP ip := 10.0.10.1 endif ifndef from # Default local application (or uImage) file name from := app uploadimg: from := uImage endif ifndef to to := $(from) endif upload: @echo = "Upload user application file" @echo " BT PAN IP: $(ip)" @echo " FILE NAME: (Local) \"$(from)\" -> (Remote) \"$(to)\"" @echo = "Execute cURL:" @curl -f --noproxy "*" -H "Content-Type: ev3rt/app" -H 'Content-Disposition: inline; filename="$(to)"' --data-binary @$(from) http://$(ip)/upload > /dev/null @echo = Application has been successfully uploaded. uploadimg: @echo = "Upload uImage file" @echo " BT PAN IP: $(ip)" @echo " FILE NAME: (Local) \"$(from)\" -> (Remote) \"/uImage\"" @echo = "Execute cURL:" @curl -f --noproxy "*" -H "Content-Type: ev3rt/img" --data-binary @$(from) http://$(ip)/upload > /dev/null @echo = uImage has been successfully uploaded. clean: rm -rf $(OBJDIR) realclean: clean rm -rf $(notdir $(OBJFILENAME)) uImage app $(LIBKERNELDIR)/libkernel.a # # Phony target for preparing $(OBJDIR) folder # temp_mkfilename := .ev3rt_temp_Makefile ifdef app configure_copts := -DBUILD_MODULE endif prepare-obj-folder: clean @cp $(MKFILE_DIR)/$(MKFILENAME) $(APPLDIR)/$(temp_mkfilename) @mkdir -p $(OBJDIR) cd $(OBJDIR) && \ $(KERNELDIR)/configure -T ev3_gcc -A app \ -a $(call get_relpath,$(APPLDIR),$(OBJDIR)) \ -t $(call get_relpath,$(APPLDIR),$(OBJDIR)) \ -D $(call get_relpath,$(KERNELDIR),$(OBJDIR)) \ -L $(call get_relpath,$(LIBKERNELDIR),$(OBJDIR)) \ -l $(SRCLANG) \ -m $(temp_mkfilename) -o "$(configure_copts)" \ -U "$(APPLOBJS)" && \ rm $(APPLDIR)/$(temp_mkfilename) && \ mv $(temp_mkfilename) Makefile && \ make clean .PHONY: clean realclean prepare-obj-folder img app

試したこと

setup画面を確認してみても、makeにはチェックがされていて、使える状態になっていました。
cygwin自体やGNU Tools for ARM Embedded Processorsのほうも念のためインストールしなおしてみましたが、結果は変わりませんでした。

補足情報(FW/ツールのバージョンなど)

パソコンの環境はwindoes10HOMEで、cygwinは64bit版をインストールしました。
試行したプログラムの言語はCです。
https://dev.toppers.jp/trac_user/ev3pf/wiki/DevEnvWin
↑参考にしたページです。

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

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

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

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

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

Stan_Dma

2019/03/20 09:18

Mismatched between your explanation and the command you showed. You should have had a "make app=linetrace" command typed, right?
guest

回答3

0

自己解決

データをデスクトップにおいていたのですが、cygwinのフォルダ内に移してみたところ無事実行することが出来ました。
問題解決にお付き合いくださり、本当にありがとうございました。

投稿2019/03/24 00:59

saje

総合スコア17

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

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

0

Desktop/NEWET2018/hrp2/sdk/workspace/linetrace/Makefile.inc: No such file or directory

[直訳] Desktop/NEWET2018/hrp2/sdk/workspace/linetrace/Makefile.inc なんてファイルやディレクトリは、ありません

という事なので、ファイルパスが正しくないのだと思います。

cd '/cygdrive/c/Users/Desktop/NEWET2018/hrp2/sdk/workspace'

とありますが、"/cygdrive/c/Users/" と "/Desktop"の間にはユーザ名(Windowsのユーザ名)が入るはずです。
ユーザ名の部分が抜けているために、「ファイルやディレクトリは、ありません」となったのでしょう。

cd '/cygdrive/c/Users/ユーザ名/Desktop/NEWET2018/hrp2/sdk/workspace'
(ユーザ名のところは適宜修正してください)

投稿2019/03/20 07:03

coco_bauer

総合スコア6915

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

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

saje

2019/03/20 07:55

入れてみましたが駄目でした。
guest

0

Makefile:94: Desktop/NEWET2018/hrp2/sdk/workspace/linetrace/Makefile.inc: No such file or directory

Makefileの中で参照しているMakefile.incというファイルが見つからない、という内容のエラーです。

ソースコード一式は、どちらから持ってきたものでしょうか?それともご自身で作成されたものでしょうか。

投稿2019/03/20 04:48

kazto

総合スコア7196

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

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

saje

2019/03/20 06:22

知人が作成したものです。 cygwinはその人と同じ設定にしてあり、私のほかにも何人かにコピーを配布していて、ほかの人は実行したできたのですが私だけ上記のようなエラーが起きました。
kazto

2019/03/20 06:26

当該のMakefile.incはエクスプローラで存在は確認できていますか?
saje

2019/03/20 06:30

できています。
kazto

2019/03/20 06:37

Makefileの内容を追記することはできますか?コメントにではなく、質問を編集する形で追記していただけると助かります。
saje

2019/03/20 06:44

編集しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問