
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
インストールできないですどう...
-
LinuxでWine使うとどのくらいWi...
-
Core 2 Duo の古いパソコンに最...
-
bashでシングルクォート内の変...
-
「トゥ]の出し方
-
LinuxのPCは基本不要PC中古を使...
-
VirtualBox 6.1 → 7.1 でUbuntu...
-
Linux のシェルスクリプトの強...
-
Windowsのローカルディレクトリ...
-
ログにserver reached MaxReque...
-
ubuntuで デイスク/deb/loopと...
-
ssh接続しようとしたらエラーメ...
-
Ububtuでファイル共有できない...
-
ubuntu(linux)のシャットダウン...
-
Ubuntu on Xorgのログインについて
-
unutu24でDISKINFOを読み取る方...
-
テキストファイルをページ番号...
-
mxlinux 起動時エラーについて
-
Lubuntuでとにかく軽量のバージ...
-
ubuntu proのデスクトップ版は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
LinuxでWine使うとどのくらいWi...
-
Core 2 Duo の古いパソコンに最...
-
VirtualBox 6.1 → 7.1 でUbuntu...
-
インストールできないですどう...
-
ubuntuのシャットダウンが進ま...
-
「トゥ]の出し方
-
Linux のシェルスクリプトの強...
-
ubuntu(linux)のシャットダウン...
-
bashでシングルクォート内の変...
-
WinSCPでLinux(CentOS6.10)に...
-
ubuntuで デイスク/deb/loopと...
-
Ubuntu on Xorgのログインについて
-
私のパソコンでVirtualBoxは使...
-
Ububtuでファイル共有できない...
-
Windowsのローカルディレクトリ...
-
Linuxでブートディスクの交換後...
-
ログにserver reached MaxReque...
-
ssl_request_logの必要性について
-
ssh接続しようとしたらエラーメ...
-
2TBのUSBメモリを2000円ほどで...
おすすめ情報