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

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

ただいまの
回答率

87.60%

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

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,461

score 17

前提・実現したいこと。

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
↑参考にしたページです。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • Stan_Dma

    2019/03/20 18:18

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

    キャンセル

回答 3

check解決した方法

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/03/20 15:37

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

    キャンセル

  • 2019/03/20 15:44

    編集しました。

    キャンセル

  • この投稿は削除されました

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 16:55

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

    キャンセル

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

  • ただいまの回答率 87.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る