【無料配信♪】Renta !全タテコミ作品第1話

UNIX(Linux)系のOSやC言語には不慣れなのですが、よろしくお願いします。

普段はWindows7(Home Ed.)を利用しているのですが、
いくつかのlinux系のソフトを利用する際にcygwinも利用しています。


==========================================================
cygwinにソフトウェアをインストールしようとする際に、
ときどき遭遇するエラーなのですが

仮にsoftware.tar.gzというソースファイルからインストールしようとして、

> gunzip -c software.tar.gz | tar xvf -
> cd software
> ./configure
> make
.....
make: *** [all-recursive] error

というエラーが生じて、makeが通らない時があります。
=========================================================


これまで何度か、どういうエラーなのか調べようとする度に挫折し、
何回かやり直している内に、たまたまmakeがすんなり通って
インストールできてしまったりしていたので、
なんとなくうやむやにしていました。

そもそも、この"all-recursive"に全くピンとこないのですが、
これはどういった場合に生じるエラーを示しているのでしょうか?
recursive(再帰的な)だから、関数かなにかの呼び出しに失敗している、
とかそういうことなのでしょうか?


エラーの内容はケースバイケースだし、
漠然とした質問になって申し訳ないのですが、
ちょっとしたアドバイスでもいいので、ご回答をお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

お腹痛いのに、一生懸命違うところを診察しているようなものですかね。



make[2]: *** [tvsetf.o] Error 1
この行より上全部じゃないですか?
WARNINGとかも出てますしね。

仰るとおりケースバイケースではありますが、例えば自分で作ったプログラムでの話ならばプログラムのミスが考えられますが、どこかの出来合いのフリーウェアをmakeしてエラーで落ちる場合は、環境が整っていない場合があります。(○○がインストールされていないとか…)

その辺は全てconfigureやmake時に出てくるメッセージをちゃんと見ることです。

なぜ最後に出てくるall-recursiveだけに注目してるのか知りませんが、見なくてもいいものをずっと見ていても問題は解決しません。
    • good
    • 1
この回答へのお礼

再度ご回答ありがとうございました。

> この行より上全部じゃないですか?
makeの内容が長かったので、Errorというメッセージが出てきた部分からでいいかと思ったのですが、
そうではないんですね。。。

> WARNINGとかも出てますしね。
確かにwarningがいくつか出ていた気がするので、もう一度makeの出力内容を確認し直してみます。

> ...環境が整っていない場合があります。
今回のエラーは結局解決できたのですが、ご指摘いただいたとおり、
必要とされるパッケージとの互換性が問題だったようで、バージョンを変えて
パッケージをインストールし直したところ解決しました。

見当はずれな質問で申し訳なかったですが、
重ねてお礼申し上げます。
とりあえずmake等の勉強をもう少し進めてみます。

お礼日時:2013/03/24 21:33

>all-recursive自体にはそんなに意味はないということでしょうか?



「ターゲット all-recursive を作成中にエラーが発生した」という意味はありますが、これは結局のところmake中のどこかでエラーが発生して最終ターゲットの all-recursive が作成できなかったという事なので#2でいわれている通りそこだけみていても解決はしません。
「ターゲット all-recursive」など意味がわからないかもしれませんが、そこはmakeについて勉強してください。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございました。
ご指摘のとおり、まだ意味が分からないことだらけですが、
ひとまずmakeの勉強を少しずつ進めていきたいと思います。

お礼日時:2013/03/24 21:35

make: *** [all-recursive] error



これは普通にエラーがあると出てくるメッセージです。

それより、その前にメッセージやエラー等出てなかったですか?
    • good
    • 1
この回答へのお礼

素早いご回答ありがとうございます。
all-recursive自体にはそんなに意味はないということでしょうか?

エラーが出た最近のケースは以下のようなものでした。
============================================================
> make
...
...
...

Invalid form for assignment statement at (^)
tvsetf.f:77: warning:
call VRFY(fid1,'hopen',number_failed)
1
tvsetf.f:1021: (continued):
call VRFY(status,'vfdtch vgroup0_id')
2
Too few arguments for `vrfy' at (2) versus invocation at (1) [info -f g77 M GLOBALS]
tvsetf.f:77: warning:
call VRFY(fid1,'hopen',number_failed)
1
tvsetf.f:1023: (continued):
call VRFY(status,'vsfdtch vdata1_id')
2
Too few arguments for `vrfy' at (2) versus invocation at (1) [info -f g77 M GLOBALS]
tvsetf.f:77: warning:
call VRFY(fid1,'hopen',number_failed)
1
tvsetf.f:1025: (continued):
call VRFY(status,'vsfdtch vdata2_id')
2
Too few arguments for `vrfy' at (2) versus invocation at (1) [info -f g77 M GLOBALS]
Makefile:486: recipe for target `tvsetf.o' failed
make[2]: *** [tvsetf.o] Error 1
make[2]: ディレクトリ `/tmp/' から出ます
Makefile:328: recipe for target `all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: ディレクトリ `/tmp/' から出ます
Makefile:415: recipe for target `all-recursive' failed
make: *** [all-recursive] Error 1
=====================================================================

お礼日時:2013/03/23 21:54

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qmakeコマンドができない

基本的なことだと思いますがお願いします。

fedore core で色んなことをやってみようと思い sl を インストール

していたのですがmakeができないのです。インストール通りにできないの

はなんでですか? makeコマンドは /usr/bin にありました。

的はずれなこと言っていたらすみません。

[root@localhost sl]# ls -lrt
合計 36
-rw-r--r-- 1 3605 lock 4101 1月 19 1994 sl.h
-rw-r--r-- 1 3605 lock 980 1月 19 1994 sl.txt
-rw-r--r-- 1 3605 lock 689 1月 19 1994 sl.1
-rw-r--r-- 1 3605 36 417 7月 22 1998 README
-rw-r--r-- 1 3605 36 331 7月 22 1998 Makefile
-rw-r--r-- 1 root root 76 10月 31 2005 install.txt
-rw-r--r-- 1 3605 36 7131 10月 31 2005 sl.c
[root@localhost sl]# more install.txt
1. # tar xvf sl.tar
2. # cd sl
3. # make
4. # cp sl /usr/local/bin/
5. # sl
[root@localhost sl]# make
cc -O -o sl sl.c -lcurses -ltermcap
make: cc: コマンドが見つかりませんでした
make: *** [sl] エラー 127

基本的なことだと思いますがお願いします。

fedore core で色んなことをやってみようと思い sl を インストール

していたのですがmakeができないのです。インストール通りにできないの

はなんでですか? makeコマンドは /usr/bin にありました。

的はずれなこと言っていたらすみません。

[root@localhost sl]# ls -lrt
合計 36
-rw-r--r-- 1 3605 lock 4101 1月 19 1994 sl.h
-rw-r--r-- 1 3605 lock 980 1月 19 1994 sl.txt
-rw-r--r-- 1 3605 lock 689 1月 19 1994 sl.1
-rw-r--...続きを読む

Aベストアンサー

そのslの出自がわかりませんが、
http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/
にあるものならば、

Makefile の
CC=cc
という行を
CC=gcc
に変更して再度 make してみてください。

> make: cc: コマンドが見つかりませんでした

というメッセージが出ているのだから、makeそのものは実行できている
というのはわかりそうなものですが。make 一発ですまないのは
このslだいぶ前に作られた古いものだからでしょうね。

Qmake時に出てきたエラーメッセージの意味が分からなく困っています。

最近、Linuxを始めたばかりのLinux初級人間です。
出てきたエラーメッセージの意味が分からず、
次なる一手がどうしても判断できず、ご相談させていただきます。

現在、DHT技術に興味があり、
BambooDHTというものを、
自分のサーバにインストールしています。
そして苦戦しています。

banbooDHTをコンパイルするには、以下の手順が必要みたいです。

(1)JDKをインストール
(2)banbooをインストール
(3)makeでコンパイル

まずは、「wget」にて、下記javaのWEBページより、
「JDK 6 Update 6」よりダウンロードしました。

http://java.sun.com/javase/ja/6/download.html

使用許諾所に「Yes」で回答し、インストール作業を行いました。
インストール作業後「完了(DONE)」の表示が出ました。

その後、JAVAの環境変数の設定を行い、
「java -version」にて正常にインストール作業完了の旨認識できました。

bambooのインストール作業を行い、
こちらも正常に作業が完了しました(DONEの表示あり)。

最期のstepとして上記(3)を実行しましたが、
以下エラー内容と共にコンパイルが成功しませんでした。
「javac がないからコンパイルできないよ!」という意味でしょうか?
JDK 6にはjavacは含まれていると認識しています。

これ以上、どうしていいか分からない状況です。
長々としてしまいましたが、
どなたか、アドバイスいただけるとありがたいです。

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
make -C src/bamboo
make[1]: ディレクトリ `/root/bambooDHT/bamboo/src/bamboo' に入ります
make[2]: ディレクトリ `/root/bambooDHT/bamboo/src/bamboo/www' に入ります
WebInterface.java
/bin/sh: /bin/javac: そのようなファイルやディレクトリはありません
make[2]: *** [WebInterface.class] エラー 127
make[2]: ディレクトリ `/root/bambooDHT/bamboo/src/bamboo/www' から出ます
make[2]: ディレクトリ `/root/bambooDHT/bamboo/src/bamboo/vis' に入ります
Vis.java
/bin/sh: /bin/javac: そのようなファイルやディレクトリはありません
make[2]: *** [Vis.class] エラー 127
make[2]: ディレクトリ `/root/bambooDHT/bamboo/src/bamboo/vis' から出ます
make[2]: ディレクトリ `/root/bambooDHT/bamboo/src/bamboo/dmgr' に入ります
make[2]: `all' に対して行うべき事はありません.
ASyncCore.java
/bin/sh: /bin/javac: そのようなファイルやディレクトリはありません
make[2]: *** [ASyncCore.class] エラー 127
make[2]: ディレクトリ `/root/bambooDHT/bamboo/src/bamboo/lss' から出ます
make[2]: ディレクトリ `/root/bambooDHT/bamboo/src/bamboo/api' に入ります
BambooLeafSetChanged.java
/bin/sh: /bin/javac: そのようなファイルやディレクトリはありません
make[2]: *** [BambooLeafSetChanged.class] エラー 127
make[2]: ディレクトリ `/root/bambooDHT/bamboo/src/bamboo/api' から出ます
make[2]: ディレクトリ `/root/bambooDHT/bamboo/src/bamboo/router' に入ります
CheckRunning.java
/bin/sh: /bin/javac: そのようなファイルやディレクトリはありません
make[2]: *** [CheckRunning.class] エラー 127
make[2]: ディレクトリ `/root/bambooDHT/bamboo/src/bamboo/router' から出ます
make[2]: ディレクトリ `/root/bambooDHT/bamboo/src/bamboo/util' に入ります
GuidTools.java
/bin/sh: /bin/javac: そのようなファイルやディレクトリはありません
make[2]: *** [GuidTools.class] エラー 127
make[2]: ディレクトリ `/root/bambooDHT/bamboo/src/bamboo/util' から出ます
make[2]: ディレクトリ `/root/bambooDHT/bamboo/src/bamboo/temu' に入ります
PublishData.java
/bin/sh: /bin/javac: そのようなファイルやディレクトリはありません
make[2]: *** [PublishData.class] エラー 127
make[2]: ディレクトリ `/root/bambooDHT/bamboo/src/bamboo/temu' から出ます
make[1]: *** [subdirs] エラー 2
make[1]: ディレクトリ `/root/bambooDHT/bamboo/src/bamboo' から出ます
make: *** [sources] エラー 2

最近、Linuxを始めたばかりのLinux初級人間です。
出てきたエラーメッセージの意味が分からず、
次なる一手がどうしても判断できず、ご相談させていただきます。

現在、DHT技術に興味があり、
BambooDHTというものを、
自分のサーバにインストールしています。
そして苦戦しています。

banbooDHTをコンパイルするには、以下の手順が必要みたいです。

(1)JDKをインストール
(2)banbooをインストール
(3)makeでコンパイル

まずは、「wget」にて、下記javaのWEBページより、
「JDK 6 Update 6」...続きを読む

Aベストアンサー

こんにちは。

メッセージの意味としては、javacが見つからないということでしょうね。
インストールしたことが間違いないのであれば、javacはどこのディレク
トリにインストールされていますか?
メッセージを見ると、Makefileでは/binにあることが前提となっている
ようですが、javacのインストールディレクトリを確認の上、Makefileの
javacのパスを修正して、再度makeすればよいのではないでしょうか?

Qmakeコマンドが使えません。

コマンドのまったくの素人です。
makeというコマンドを使おうとすると
makeコマンドが見つからないというエラーが
出るのですが、どのように対処をしたらいいのでしょうか?
よろしくお願いいたします。

Aベストアンサー

そうですねNo.4の方の言うとおり、その他の開発用ツールがインストールされていない可能性が高いですね。

たしか、Fedora Core 3を使用したと思いますので、
アプリケーション→システム設定→アプリケーションの追加/削除を選択しパッケージ管理を起動させ、その中の開発の項目にある開発ツールのチェックボックスをチェックし、必要であれば詳細から追加でパッケージを選択し、更新をクリックしてパッケージをインストールすればいいのではないでしょうか。

Qmake でエラー

勉強中の身です。
環境 fedora 2
postgresqlをインストールして
(postgresql-8.2.1)


make コンパイルがうまくいきません
[postgres@localhost postgresql-8.2.1]$ ./configure
checking build system type... i686-pc-linux-gnuoldld
checking host system type... i686-pc-linux-gnuoldld
checking which template to use... linux
checking whether to build with 64-bit integer date/time support... no
checking whether NLS is wanted... no
checking for default port number... 5432
checking for gcc... no
checking for cc... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.

[postgres@localhost postgresql-8.2.1]$ make
You need to run the 'configure' program first. See the file
'INSTALL' for installation instructions.
make: *** [all] エラー 1

$ make とすると上記のようにエラーがでます。

./configure -オプション
が必要なのでしょうか?

よろしくおねがいします。

勉強中の身です。
環境 fedora 2
postgresqlをインストールして
(postgresql-8.2.1)


make コンパイルがうまくいきません
[postgres@localhost postgresql-8.2.1]$ ./configure
checking build system type... i686-pc-linux-gnuoldld
checking host system type... i686-pc-linux-gnuoldld
checking which template to use... linux
checking whether to build with 64-bit integer date/time support... no
checking whether NLS is wanted... no
checking for default port number... 5432
chec...続きを読む

Aベストアンサー

> failure. It is possible the compiler isn't looking in the
> proper directory.
> Use --without-readline to disable readline support.

configue で failure が出ているのに make をしても意味がありません。
すけさん、かくさんのまねをして「この failure が目に入らぬか!」といいたくなります。

次は readline を入れましょう。

yum が使えるのなら、
yum install readline-devel.i386
でいいはずです。

QLinuxのgccのインクルードパス?

Linuxのgccで、インクルードファイルやライブラリのパスを設定する方法が知りたいのですが、gccについて詳しい書籍やサイトがありましたら、教えてください。

gccとccの違いも知りたいです。

例)
#include "example.h"

このままだと、example.hが無いと表示されます。

Aベストアンサー

標準ライブラリのパスは、gccのインストール時に指定して、Cプリプロセッサの中に組み込まれます。

#include "example.h"
は、まずカレントディレクトリを探し、次に gccコマンドラインの -I オプションで指定したディレクトリを探し、最後に標準ライブラリが探されます。

#include <example.h>
は、カレントディレクトリを探さない点が異なります。

ccも基本的には同じですが、Unixの種類によって機能が異なる可能性があります。Linuxの場合はcc=gccです。

QLinux バイナリ実行できない "cannot execute binary file”

表記ですが、Linuxサーバーに対して、Windowsクライアントから
XWin環境にてユーザー"hoge"でログインを行い、
そのサーバー上でターミナルを立ち上げ
/usr/local/gcc_work
というフォルダを作り、その中で

---ここからーーー
#include <stdio.h>
int main(void)
{
printf("Hello,world\n");
return 1;
}
ーーーここまでーーー

のような、hello.cを作成し、

$ gcc -c hello.c -o hello
でバイナリを作成し

$ ./hello
とすると
bash: ./hello: cannot execute binary file

とのメッセージが出ます。
パーミッションの問題かと思いましたが、
[hoge@localhost gcc_work]$ ls -l
合計 8
-rwxrwxr-x 1 hoge hoge 876 5月 6 18:14 hello
-rwxrwxr-x 1 hoge hoge 83 5月 6 18:13 hello.c

のようになっていて、問題なく感じています。
スーパーユーザになって再度コンパイルしても同じでした。
くだらないところで躓いているのかもしれませんが、お気づきあらば
教授願います。

表記ですが、Linuxサーバーに対して、Windowsクライアントから
XWin環境にてユーザー"hoge"でログインを行い、
そのサーバー上でターミナルを立ち上げ
/usr/local/gcc_work
というフォルダを作り、その中で

---ここからーーー
#include <stdio.h>
int main(void)
{
printf("Hello,world\n");
return 1;
}
ーーーここまでーーー

のような、hello.cを作成し、

$ gcc -c hello.c -o hello
でバイナリを作成し

$ ./hello
とすると
bash: ./hello: cannot execute binary file

と...続きを読む

Aベストアンサー

> $ gcc -c hello.c -o hello

-c オプションをつけたときは実行ファイルまでは作らずに、オブジェクトファイル
(通常は .oの拡張子を持つもの)を作るだけですよ。
それは実行可能形式のファイルじゃありません。

file hello

とかしてみてください。
素直に -c オプションをつけずに

$ gcc hello.c -o hello

で実行可能な hello ができると思いますよ。

Qコンパイルエラーについて

#include <stdio.h>

int main(void){
char a[8],b[7],c[6];

printf("a[8]のアドレスは%pです。\n",&a[8]); //a[8]のメモリアドレスを表示

printf("\n");

printf("b[7]のアドレスは%pです。\n",&b[7]); //b[7]のメモリアドレスを表示

printf("\n");

printf("c[6]のアドレスは%pです。\n",&c[6]); //c[6]のメモリアドレスを表示

printf("\n");

char *c1 ="abcde";
printf("c1=%s\n",c1); //abcdeを表示
printf("c1[2]=%c\n",*(c1+2)); //先頭アドレスの2つ先のアドレスに格納されている値(c)を表示


char c2[] ="abcde";
char *pc2;
printf("c2=%s\n",c2); //abcdeを表示

pc2=&c2[2]; //変数c2[2]のアドレスを格納

printf("c2[2]=%c\n",*pc2); //c2[2]アドレスに格納されている値(c)を表示

char *c="abcdefghijklmn";

char cc[]="opqrstuvwxyz";
printf("%c\n", *(c+7));
printf("%c\n", *(cc+2));

return 0;
}

としてコンパイルした所、
test.c: In function ‘main’:
test.c:31: error: conflicting types for ‘c’
test.c:4: note: previous declaration of ‘c’ was here

と出てしまいました。原因が良く分からないのですが教えて頂けますでしょうか?

#include <stdio.h>

int main(void){
char a[8],b[7],c[6];

printf("a[8]のアドレスは%pです。\n",&a[8]); //a[8]のメモリアドレスを表示

printf("\n");

printf("b[7]のアドレスは%pです。\n",&b[7]); //b[7]のメモリアドレスを表示

printf("\n");

printf("c[6]のアドレスは%pです。\n",&c[6]); //c[6]のメモリアドレスを表示

printf("\n");

char *c1 ="abcde";
printf("c1=%s\n",c1); //abcdeを表示
printf("c1[2...続きを読む

Aベストアンサー

>char a[8],b[7],c[6];
>char *c="abcdefghijklmn";

変数cをダブって定義しようとしているためです。

>test.c:4: note: previous declaration of ‘c’ was here

test.cの4行目 注記:前に定義したcがここにありますよ

って書いてます。
コンパイルエラーの読み方を学びましょう。

QMakefile作成時の拡張子.oとは?

main2.o: main.c
gcc -o main2.o -c main.c
hello2.o: hello.c
gcc -o hello2.o -c hello.c
test2: main2.o hello2.o
gcc -o test2 main2.o hello2.o
のようなMakefile作成時の拡張子.oとは何のファイルという意味なのでしょうか?
Makefile作成初心者なのでご教授お願いいたします。

Aベストアンサー

これは
main.cからmain2.oというオブジェクトファイルを作りなさい。
hello.cからhello2.oというオブジェクトファイルを作りなさい。
main2.oとhello2.oをリンクしてtest2という実行ファイルを作りなさい
って事です。
多分、main.cにはmain()関数があり
hello.cには別ファイルとしてmain.c内のソースから呼び出している
外部関数が有ると思います。
それをリンクするのに一端オブジェクトファイルを
つくりその後リンクして一つの実行ファイルにしているのです。

Qcc と gcc の違い

CCとGCCの違いについて教えてください。
どちらも、コンパイラという点では同じだと思うのですが、なぜ2つの方式ができたのでしょうか??

少し話がずれますが、プログラムを汎用性も持たせるなら、どのようなオプションをつけるべきでしょうか?
-ansi とか -Wall あたりをつける癖をつけておけば十分なのでしょうか??

G++とGCCの違いについても知っていれば教えて下さい
初歩的な質問ですがお願いします

Aベストアンサー

GCCはそのコンパイラの固有名詞です。
http://gcc.gnu.org/ このサイトに解説があります。
ccは多くの場合そのシステムに標準で突いているコンパイラです。
そのOSのベンダが提供しているばあいもあれば、FreeBSDのように
中身はgccというものもあります。

g++とgccの違いはデフォルトでC++のファイルとして扱うか
というところが違うだけだったはずです。(多分)

Q#./configureの時点でダメです。

  Fedora Core6 から始めたばかりです。
#./configureの時点で

bash: ./configure: そのようなファイルやディレクトリはありません

と言われます。解凍したディレクトリに入ってやったのですが
PHPやfirefoxどちらもダメでした。
一日かけても答えが出ずくじけそうになってます。
  助けてください。

Aベストアンサー

> bash: ./configure: そのようなファイルやディレクトリはありません

エラーの表示されるディレクトリーで # ls とすると configure はないですよね? 『./configure』の意味は、カレント・ディレクトリーにある『configure』を実行しなさい!ですから、存在しないから・・・『そのようなファイルやディレクトリはありません』と報告しています。
実行するディレクトリーをパッケージを解凍したディレクトリーに移動しすれば正常に実行できますよ ^ ^

 ちょっと気になるのですが・・・・
『bash: ./configure: その・・・』『:』が『e』の後ろにありますが・・・それって単なるタイプ・ミスですよね???


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング