gfortranのmakefileを作成し、"make test"と実行しても成功しません。
どうすればいいのでしょうか?
どこか間違いがあるでしょうか?
下にmakefileを全文載せましたのでアドバイスをよろしくお願いします。
OBJS = main.o tree.o treef.o
test : ${OBJS}
gfortran -c test ${OBJS}
main.fやtree.fやtreef.fのファイルの中身は問題ありません。
他のパソコンではキチンとコンパイルに成功しています。
ちなみに、"make test"と実行して出てくるエラーメッセージが「makefile:3 *** 最初のターゲットより前にコマンドを起動. 中止.」
です。
No.5ベストアンサー
- 回答日時:
> commands commence before first target. Stop
このエラーメッセージで検索すると
"`commands commence before first target. Stop.'(訳:最初のターゲットの前にコマンドが開始されました。停止します。)
`missing rule before commands. Stop.'(訳:コマンド前のルールの欠落。停止します。)
これはmakefileの最初がコマンドスクリプトの一部になっているようだという意味です。つまりタブ文字で始まっていて(変数式のような)makeで定められたコマンドが見当たらない、という事です。コマンドスクリプトはターゲットに常に関連していなければなりません。 生成される第二の要因は、セミコロンが空白ではない最初の文字として行にある場合で、makeはこれを行の"ターゲット: 依存関係"の項目を省いたと解釈します。"
http://www.ecoop.net/coop/translated/GNUMake3.77 …
というのが見つかります。
本当に、うまくいくPCといかないPCとで同じmakefileですか?
うまくいくのといかないのとそれぞれの環境で
od -t x1 makefile
としたら結果は同じですか?
OSとかディストリというのは、
たとえば CentOS とか Vine Linuxとか、どういう名前のものを
使っているかという確認でした。
うまくいかないPCだけ別のもの使ってるとかはありませんか?
わけわかんなければ
uname -a
ってコマンドをそれぞれのPCで実行して、その結果を比べてください。
No.4
- 回答日時:
UNIX系OSでは"test"という名前のコマンドがあるので、それと
混同している可能性もあります。"test"→"test1"とかに変更
して試されてはどうですか。
No.3
- 回答日時:
すんません。
寝ぼけてました。カテゴリからすればほぼ間違いなく GNU make ですわな。
ということで、先の補足要求のOSはディストリに読み替えてくださいませ。
No.2
- 回答日時:
OBJS = main.o tree.o treef.o
test : ${OBJS}
gfortran -c test ${OBJS}
これ、gfortranのオプション間違ってません?
gfortran -o test ${OBJS}
ならわかるんですが。
とりあえずこれはgfortranじゃなくてmakeの問題でしょう。
うまくいくものと、いかないものの環境をそれぞれ書いてください。
とりあえずOSとmakeのバージョンかな。
使っているmakeが違っていて suffix ルールが違うとか。
あ、Unix系のOSを使っているのなら、
LANG=C make test
でメッセージが変わります?
この回答への補足
現在使用しているパソコンが購入したばかりのものであり、うまくいった試しがまだありません・・・。
僕自身も素人でして、専門用語とかよくわからないのですが、具体的にどうすればいいのでしょう?
ちなみに
LANG=C make test とコマンド文を打てばいいのでしょうか?
打ったら「*** commands commence before first target. Stop」 と表示されます。
No.1
- 回答日時:
う~ん, 英語のメッセージじゃないとわからんなぁ....
ひょっとすると, どこかの行の先頭にこっそりタブ文字が入ってたりしませんか?
... と, 手元の本 (GNU Make) には書いてあった.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- C言語・C++・C# Makefileのechoの展開について 2 2022/07/26 07:35
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Windows 10 ネットワークプリンターにファイルを直接送る方法・コマンドないですか?(´・ω・`) 3 2023/03/13 23:15
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
windouws10のエラーチェック
-
SCコマンドでアクセス拒否
-
UNIX コマンドにおける # や円...
-
ワイルドカードを使ってでフォ...
-
[バッチファイル]レジストリ値...
-
Linuxでコマンドが終了しない
-
Excel下部のメニューが消えた
-
アクセスのボタンから指定のワ...
-
Linuxコマンドは何の言語で書か...
-
vbaで「最前面に」とする方法は?
-
最後に届いたメールをmailコマ...
-
Minecraftについての質問です
-
閉じている全ての+ボタンを一...
-
JP1での保留Job一覧取得につき...
-
コマンドプロンプトにおけるコ...
-
dd実行 途中経過
-
相手PCのMACアドレスを知るため...
-
mv コマンドのエラーコード
-
Linuxでネットワーク転送バイト...
-
macのメモ帳について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UNIX コマンドにおける # や円...
-
Ctrl+Zで戻りすぎた場合、逆に...
-
[バッチファイル]レジストリ値...
-
SCコマンドでアクセス拒否
-
MacOS ターミナルについて
-
shutdownコマンドをキャンセル...
-
Mac Homebrewについて
-
アクセスのボタンから指定のワ...
-
Linuxコマンドは何の言語で書か...
-
ワイルドカードを使ってでフォ...
-
このエラー内容について教えて...
-
コマンド履歴が~/.bash_history...
-
Excel下部のメニューが消えた
-
echo $!の意味を教えてください
-
vbaで「最前面に」とする方法は?
-
Linux:sedコマンドで置換がし...
-
コマンドプロンプトにおけるコ...
-
Powershell エクセル検索 完全...
-
DOSコマンドについて
-
AIXでの文字コード、改行コード...
おすすめ情報