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

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

新規登録して質問してみよう
ただいま回答率
85.37%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

make

make は、ビルド作業を自動化するツールです。さまざまなファイルの最終変更時刻を比較し、従属するファイルよりも「ターゲット」のファイルが古いことがわかったときユーザーが設定していた命令を実行する事が可能です。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Q&A

解決済

1回答

25822閲覧

Ubuntuにてmakeコマンドのエラー ターゲットが見つからない

Duboa

総合スコア5

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

make

make は、ビルド作業を自動化するツールです。さまざまなファイルの最終変更時刻を比較し、従属するファイルよりも「ターゲット」のファイルが古いことがわかったときユーザーが設定していた命令を実行する事が可能です。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

0グッド

1クリップ

投稿2019/12/07 20:22

編集2019/12/08 05:05

###使用環境・前提
OS Windows 10 Pro
bash は Ubuntu 18.04.2 LTS を使用しています

質問者の理解度
Ubuntuに手を出し始めて数日なので、理解が足りていません。
(そもそもプログラミング自体、Cとpythonを少しかじった程度です。 じゃんけんゲーム作れる程度)
根本的に間違っていることも多いと思いますが、回答よろしくお願いします。

###実現したいこと

makeコマンドを用いて、.cファイルをコンパイルしたいと思っています。
コンパイル前のコードは(.cファイル Joystick.cという名前)、参考記事(下に記載)からDLしたものを少し手直ししています。

また上記の理由のため、makefileがあるフォルダでbashを開く方法を知りたいです。

発生している問題

Ubuntuでmakeコマンドを実行すると、下記のようなエラーメッセージが現れます。

$make make: *** No targets specified and no makefile found. Stop.

また、参考記事上(下に記載、目次:コンパイル に書かれています)では
「makefileがあるフォルダでbashを開いて、makeコマンドを実行するだけ。」
とありますが、makefileがあるフォルダでbashを開く方法が分かりませんでした。

試したこと

1.下のように表示されるので、ubuntuにmakeコマンドはインストールされていると思います。

$ make -v GNU Make 4.1 Built for x86_64-pc-linux-gnu Copyright (C) 1988-2014 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

2.makefileが置かれているフォルダ(F:\switch_automation(以下略))にPATHは通してありますが、
Ubuntuで確認してみると、

$echo $PATH (省略):/mnt/f/switch_automation/(以下略)

と表示され、WindowsとLinuxでフォルダのパスの表示方法が異なるため、本当にPATHが通されているのか確信を持てません。

3.makefile内に "TARGET=Joystick" と書かれているのは確認しました。

補足情報・参考文献

こちらの記事を参考に、Switchの自動化を実装したいと思っています。

https://qiita.com/Anaakikutsushit/items/b50b092c5ec43d83808a#%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3%E3%81%AB%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%80

(追記)makefileの内容(一部抜粋)

# Set the MCU accordingly to your device (e.g. at90usb1286 for a Teensy 2.0++, or atmega16u2 for an Arduino UNO R3) MCU = atmega32u4 ARCH = AVR8 F_CPU = 16000000 F_USB = $(F_CPU) OPTIMIZATION = s TARGET = Joystick SRC = $(TARGET).c Descriptors.c $(LUFA_SRC_USB) LUFA_PATH = ./lufa/LUFA CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ LD_FLAGS =

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

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

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

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

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

y_waiwai

2019/12/07 22:42

makefileの内容を提示しましょう
Duboa

2019/12/08 05:07

一部抜粋ですが、必要そうな部分を記載しました。
guest

回答1

0

ベストアンサー

「makefileがあるフォルダでbashを開いて、makeコマンドを実行するだけ。」

makefileがあるフォルダに、cdします。

投稿2019/12/08 01:56

otn

総合スコア85778

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

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

Duboa

2019/12/08 05:00

実行できました! カレントディレクトリというのを設定すればよかったんですね。 ありがとうございました。
otn

2019/12/08 05:04

> Ubuntuに手を出し始めて数日なので、 誰しも最初は初心者ですが、意味のある作業に手を出す前に、 cd ls ls -l rm mv echo cat (あるいは less) mkdir rmdir くらいはマスターしましょう。
Duboa

2019/12/08 05:12

すみません、手探りだったもので・・・ 基礎的な部分を教えていただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問