できあいのプログラムのmake installでエラーになってしまいます。

wwwcount2.5のインストールについてなのですがインストール用の設定ファイル(make config.h)とインストールプログラムの作成(make cfg)は出来たのですがmake installの段階で↓
[localhost:‾/wwwcount2.5] ユーザー名% make install
(sh ./Count-install)

Counter binary "./bin/Count.cgi" does not exist!
Apparently your compilation did not succeed or you did not compile
the program!
Aborting installation!
make: *** [install] Error 1
↑と表示されてしまいます(;^_^A アセアセ…どうやらwwwcount2.5フォルダの中のbinフォルダの中にCount.cgiなるファイルが見あたらないと言うことらしいからbinフォルダの中を除いてみたらREAD MEファイルが入っていてそこには↓
binaries are copied here after the compile
↑と書かれていました。。。どうやらコンパイルが終わった時点で何か(バイナリファイル?それともCount.cgiファイル?)をコピーしないとインストールができないらしいと言うことだと思うのですが何をコピればよいのかわかりません。。ちなみにwwwcount2.5フォルダの中にはcount.cgiというファイルはないし、バイナリファイル(***.gifなど)を入れてみてmake installをしてもやはりErrorになってしまいました。。。色々やってみたのですがやっぱりわかりません。。。ある参考書をみてやってみたのですが、「すでにできあがってるプログラムを使うことにします。。」と書いてあったので自分でcgiを書かなくても出来ると言うことですよね?。。。どなたかこの件に関してわかる方がいらっしゃいましたらよろしくご教授ください。よろしくお願いいたしますm(_ _)m...

投稿日 2003/05/21 03:31

返信: 30

2003/05/22 03:00 Community User への返信

お返事ありがとうございます。。。この情報を見ると僕の場合
make allと言う作業が抜けていますよね。。僕の使ってる参考書にはこの作業が抜けていてよく解らないのですが下↓の()内の
ファイルをbinフォルダの中にコピーをしてあげれば良いと言うことなのでしょうか?全く初めてコンパイル作業をしているもので
本に書いてある事以外まだよく解りません(;^_^A アセアセ…
これらのファイルをmake allでどのように記述して実行すればCount.cgiと言うファイルを作ることができるのかよく解らないので、もしよろしければ教えていただけますでしょうか?よろしくお願い致します。
#The configured script will be executed first to create the #Makefiles (libs/mcfg/Makefile, libs/combine/Makefile, #libs/bigplus/Makefile, utils/mkstrip/Makefile, utils/#extdgts/Makefile and src/Makefile) for your system. Then #the programs Count.cgi, mkstrip and extdgts will be #compiled and copied to the bin directory.

2003/05/22 04:59 Community User への返信

私は実際に試している訳ではないのですが、説明からは、単にmake allを叩けば良いはずです。
概略: make allで、まずシステム構成に合わせてMakefileが作成される。次にCount.cgi、mkstrip、extdgtsがコンパイルされ、binにコピーされる。
(追) やってみました。上記の通りです。
なお余計なお世話ですが、試行錯誤の結果、状態が変わっているようですから、最初から(ファイルの展開から)やり直した方が良いように思います。

2003/05/23 21:53 Community User への返信

〜ここ、2,3日の間もっと基本的な事から勉強しないとダメだなと痛感して(;^_^A アセアセ…色々探しててここに来るのが遅れました。。。ご指摘のとおりぼくも、きくちさんのおっしゃっている通りに一度だけmake installを引数なしでたたいたことがあったのですがその時はダメでした。。。やはり何か設定が変わってしまったのかもしれませんね?!もう一度tar.gzの解凍からやり直してみます。。。やはり、わかりやすい本というものは
いっぱい落とし穴があるものですね(笑)〜掲示板を同じように設置したときなどは、textファイルがpicoで日本語が解読文字(笑)になってしまっていて設定の所探して書き込むのに苦労しました。。。やはりもうそろそろJugarに切り替えた方がよいかもしれませんね♪。。。でも参考書の落とし穴は作者の親心だと思って
これからも試行錯誤して色々と頑張ってみます。。。ありがとう
ございましたm(^_^)m

2003/05/24 16:36 Community User への返信

結局、wwwcount2.5.tar.gzの解凍→make config.h→make all→make cfg→make installの手順でやろうとしてもmake allの段階でエラーになってしまいました。。。↓
================ making Makefiles
./configure
creating cache ./config.cache
checking whether make sets ${MAKE}... yes
checking for gcc... no
checking for cc... cc
checking whether the C compiler (cc ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.
make: *** [makefiles] Error 1
上記をみてみるとC言語が使えない?みたいなことが書いてあってコンパイルに失敗している様な気がするんですけど(;^_^A アセアセ…OS Xって最初からPerlが入ってるからC言語はサポートされてるんですよね?もしかして、ぼくの場合シェルでtcshを使ってるから、コンパイルに失敗するのでしょうか?〜解決できずに未だに色々と検索しながらやってますがなかなか前に進めません
(;^_^A アセアセ…

2003/05/24 17:20 Community User への返信

makeが動く(のとccは見つかっているような)ので問題ないと思いますが、Developer Toolsは入れていますよね?
次を打つと何が表示されます?

ls -l `which make`

ls -l `which gcc`

ls -l `which cc`

ところで、10.2.xをお使いではなかったのですね(msg#2.)。
# 色々と事情が違いそうです...。## このボードはOS共通なのですね...。
> 最初からPerlが入ってるからC言語はサポートされてるんですよね?
から、とは限りません。
> tcshを使ってるから、コンパイルに失敗するのでしょうか?
通常は関係ありません。

2003/05/24 17:30 Community User への返信

>OS Xって最初からPerlが入ってるからC言語はサポートされてるんですよね?
PerlとCに関連はありません。言語としては別物だし、言語の分類(インタプリタ型とかコンパイラ型とか)としても別。
Perlはインタプリタ型の言語で、逐次翻訳しながらそのまま実行するので、翻訳機能がそのまま実行環境になります。C言語で作成されている場合は一旦機械語に変換してから実行するので、翻訳機能と実行環境は別れています。機械語に落としてしまえば翻訳機能は必要ないので。
通訳の人を連れて海外旅行するのと、英会話をマスターしてから一人で海外旅行するのの違いのようなものです。通訳の人を連れて歩けばお手軽ですが会話のテンポは悪くなります。対して英会話をマスターするまでは時間がかかる(コンパイルの手間がかかる)けど、いったんマスターしてしまえば(機械語になってしまえば)会話はスムーズ(実行速度が速い)だし英会話スクールに通う必要もない(翻訳機能は必要ない)です。
いったん機械語にしてしまっているので、いちいち翻訳する必要がなく、実行環境(MacOSX)さえあれば事足りますので、標準では開発環境(コンパイラ)は入っていません。DeveloperToolsを入れないと開発環境は揃いません。Javaは開発環境と実行環境一揃い入ってますけどね。まあこれはセットのようなものなので。

2003/05/25 05:56 Community User への返信

きくちさん、もださん、お返事ありがとうございます。。。
>makeが動く(のとccは見つかっているような)ので問題ないと思いますが、Developer Toolsは入れていますよね?(きくちさん、もださんからのコメントより)
↑はい、先日make作業ができなかったので、こちらのボードで教えていただいてOS X10.1の
CDからインストールしました(使っているOS自体は現在OS X 10.1.5にverupしてあります。)
>次を打つと何が表示されます?
ls -l `which make`
ls -l `which gcc`
ls -l `which cc`
↑全て、「ls: which * : No such file or directory」と表示されてしまいます。ですが確かにmake作業
はその前の段階で(make config.h や make cfg)で問題なくできているのでターミナルで使えるようには
なっていると思うのですが(;^_^A アセアセ…
> 最初からPerlが入ってるからC言語はサポートされてるんですよね?
>(きくちさんのコメント)。。。。から、とは限りません。
>( もださんのコメント)。。。。。PerlとCに関連はありませ>>ん。言語としては別物だし、言語の分類(インタプリタ型とか>コンパイラ型とか)としても別。
↑少しづつ色々と本を読んで間違いに気づきました。C言語を使うことに関してはtcshの中の
「cc」あるいは「gcc」というコマンドを使うことで実行できる事であって、Perlというのはそれを
(←この場合はC言語をサポートしているPerlと仮定して)翻訳して実行させることだったんですね(;^_^A アセアセ…
>ところで、10.2.xをお使いではなかったのですね(msg#2.)。
# 色々と事情が違いそうです...。## このボードはOS共通なのですね...。
↑Discussions>Mac OS X>Mac OS X(10.1)> Technology>Unixの順序
でここに入ってきました。ぼくもここに来て自分の問題を過去のレスで探してた
のですが10,2でのQ&Aが多いようでしたのでちょっととまどいました。。。
〜もしかして、自分の使っているOSは10,1,5なのに、10,1CD付属のDeveloper Tools
をインストールしたからいけなかったのでしょうかね?だとするとこのボードではなくて
Developer Toolsのボードでの情報もみてみないとまずいですね。。。

2003/05/25 06:59 Community User への返信

> 全て、「ls: which * : No such file or directory」と表示されてしまいます。
おそらくは、
ls -l `which make`
をやったときに、「`」(バッククォート)ではなく、「'」(シングルクォート)を入力したもの思われます。今一度「`」でやってみてください。

2003/05/25 07:28 Community User への返信

>C言語を使うことに関してはtcshの中の「cc」あるいは「gcc」というコマンドを使うことで実行できる事であって、
tcshの中にあるわけではないです。ccやgccとtcshに直接の関係はありません。それぞれが独立したプログラムです。tcshはシェルプログラムでありFinderと同じようなものです。tcshからccやgccを呼び出すのはFinderからアプリケーション(ProjectBuilderなど)を起動するのと同じことです。
また、C言語で書かれたプログラムをccやgccを使って"実行"するわけではなく、ccやgccはあくまでC言語やC++やObjective-Cで書かれたプログラムソースから実行可能なファイルを"作成"するだけで、プログラムの実行には実行ファイルだけあればいいです。印刷された本はそれだけで完結していて、原稿や印刷機がついて回ったりはしません。
>Perlというのはそれを(←この場合はC言語をサポートしているPerlと仮定して)翻訳して実行させることだったんですね(;^_^A アセアセ…
どの様に理解されたのかいまいち理解出来ませんが・・・
(いろいろ書いたけどうまく纏められなかったのでばっさり削除して手抜きの)リンク集。
コンピュータ言語
e-Words : プログラミング言語
BIGLOBE SoftPlaza WSH-Seminar 1-1/7
大辞典
Perl! - Introduction
プログラミング環境を使ってみる
[1-5] プログラムの種類 - プログラミングの基礎
この辺りを一通り眺めればだいたい違いは判るのではないかと。
(やっぱり文章だけじゃなくて図もあった方が判りやすいよな。うん)

2003/05/25 09:38 Community User への返信

きくちさん、もださん、へべれけぇさんお返事ありがとうございます
(へべれけぇさんのコメント↓)
>おそらくは、
>ls -l `which make`
>をやったときに、「`」(バッククォート)ではなく、「'」(シングルクォート)を入>力したもの思われます。今一度「`」でやってみてください。
↑おっしゃるとおりでした。そして実行してみました↓
ls -l `which make`
lrwxr-xr-x 1 root wheel 7 Apr 8 05:30 /usr/bin/make -> gnumake
ls -l `which gcc`の実行結果は。。。↓
ls: Command: No such file or directory
ls: found.: No such file or directory
ls: gcc:: No such file or directory
ls: not: No such file or directory
ls -l `which cc`の実行結果は。。。↓
-r-xr-xr-x 1 root wheel 113460 Apr 8 05:29 /usr/bin/cc
となってました。上記をみてみるとmakeだけ「->」という記号
でgnumakeというのに出力?しているみたいですccも存在だけ
はしているみたいですけどgccはどこにもないみたいです
ということはccをどうにかしてやらないとダメみたいですね?

(もださんのコメント)
>tcshの中にあるわけではないです。ccやgccとtcshに直接の関係はありません。
>それぞれが独立したプログラムです。tcshはシェルプログラムでありFinderと
>同じようなものです。tcshからccやgccを呼び出すのはFinderからアプリケーショ
>ン(ProjectBuilderなど)を起動するのと同じことです。
↑このコメントは理解できました(^_^)b
>また、C言語で書かれたプログラムをccやgccを使って"実行"するわけではなく、
>ccやgccはあくまでC言語やC++やObjective-Cで書かれたプログラムソースから実行>可能なファイルを"作成"するだけで、プログラムの実行には実行ファイルだけあれば
>いいです。印刷された本はそれだけで完結していて、原稿や印刷機がついて回った
>りはしません。
↑この辺りがやっぱり僕自身よく理解できていないとおもうので
貼ってくださったリンクをbookmarkさせていただきました。ゆっくりじっくり勉強して行こうとおもいます。

2003/05/25 12:07 Community User への返信

>>ccやgccはあくまでC言語やC++やObjective-Cで書かれたプログラムソースから
>>実行可能なファイルを"作成"するだけで、
>↑この辺りがやっぱり僕自身よく理解できていないとおもうので
実際に作ってみれば判ることなのですが、例えば「main() {printf("hello world¥n");}」と言うC言語で記述したプログラムをtest.cというファイルで作成し、
$ cc test.c
としてコンパイルすると「a.out」という"実行可能ファイル"が作成されます。この時点ではまだ作成したプログラムは実行されていません。また一度実行可能ファイルを作成してしまえばプログラムソースに変更がない限りccやgccなどのコンパイラは必要なく、作成された実行可能ファイルだけがあればよくなります。この「a.out」という実行可能ファイルを
$ ./a.out
として実行することで初めてプログラムが動きます。a.outファイルだけを他のMacOSXマシンに持っていっても「./a.out」だけで実行できます。そのマシンにccやgccが入ってなくても構いません。多くのアプリケーションはこの形態で配布されています。cc(gcc)コマンドやperlコマンドやtcshなどもこの形態です。
#実行可能ファイルの名前は「cc test.c -o testexec」などとすることで任意に指定可能です。
ーーー
perlの場合は例えば「print "hello world¥n"」というプログラムをtest.plというファイルで作成し、
$ perl test.pl
としてperlコマンドに読み込ませることですぐ実行されます。test.plを実行するためには必ずperlコマンドが必要になります。./test.plだけで実行可能にすることも出来ますがそれでもtest.pl内でperlコマンドを呼び出すのでperlコマンドは必ず必要です。test.plをWindowsに持っていってもその環境にperlコマンドが入っていれば実行可能です。上記a.outの場合はtest.cをWindowsに持っていって再コンパイルしてWindows用の実行可能ファイル(test.exe)を作成しなければいけません。
ーーー
各プログラム言語は人間様が理解出来る文法でプログラムを記述するためのものであって、コンピュータが"直接"理解することは出来ません。それをコンピュータが直接理解出来る0と1(ビットのON/OFF)で構成された機械語(プラットフォームによって異なります)に翻訳する必要があります。それを行うのがccやgccやperlです。
#機械語命令に(ほぼ)一対一で対応しているアセンブリ言語にしても同じことで、
#アセンブラという変換プログラムで機械語に変換します。
perlの場合は実行可能ファイルを作成せずその都度機械語に翻訳して実行するため、実行には必ずperlコマンドが必要になります。C言語などは一旦機械語に変換して実行可能ファイルを作成するので、実行環境にコンパイラが入っている必要がなくなります。

2003/05/25 13:48 Community User への返信

あぁ、gcc(という名前で)は存在しないのですね。なので、ls -l ...のエラーは無視してください。(^^;
> ということはccをどうにかしてやらないとダメみたいですね?
大抵は、configureが(今回もそうでしたが)コンパイラを探しますので良いはずなんですけどね...。
(make allで)configureが実行された時、config.logというファイルが出来て、そこにエラーが出ているはずです。それを見てください。
# うーん、最初に気付くべきたった。失礼。(^^;
# -no-traditional-cpp 辺りかな...。## -no-cpp-precomp も使えるのかな...。

2003/05/25 19:13 Community User への返信

★もださん、きくちさん、質問が長引いてしまって申し訳ありません(;^_^A アセアセ…★
(もださんのコメント)
>に作ってみれば判ることなのですが、例えば「main() {printf("hello world¥n");}」と言うC言語で>記述したプログラムをtest.cというファイルで作成し、
>$ cc test.c
>としてコンパイルすると「a.out」という"実行可能ファイル"が作成されます。この時点ではまだ作>成したプログラムは実行されていません。また一度実行可能ファイルを作成してしまえばプログラ>>ムソースに変更がない限りccやgccなどのコンパイラは必要なく、作成された実行可能ファイルだ
>けがあればよくなります。この「a.out」という実行可能ファイルを
>$ ./a.out
>として実行することで初めてプログラムが動きます。a.outファイルだけを他のMacOSXマシンに>>>持っていっても「./a.out」だけで実行できます。そのマシンにccやgccが入ってなくても構い
>ません。多くのアプリケーションはこの形態で配布されています。
>cc(gcc)コマンドやperlコマンドやtcshなどもこの形態です。
↑実際にやってみたのですが、やっぱりぼくの環境に何か問題があるのか、
実行可能ファイル(a.out)を作ることができませんでした(T^T)↓

[localhost:‾] user名% cd ./Sites
[localhost:‾/Sites] user名% cc test.c
/usr/bin/ld: /usr/lib/libSystem.dylib load command 6 unknown cmd field
[localhost:‾/Sites] user名% ./a.out
./a.out: Command not found.←./a.outを実行してみたのですが...(T^T)
perlの方はどうやら上手くいったようです↓(^_^)b
[localhost:‾/Sites] alone% perl test.pl
hello worldエn[localhost:‾/Sites]
↑IEでも確認してみましたが、ちゃんと「print "hello world In"」と表示されました(^_^)b

************************************************
(きくちさんのコメント)
>大抵は、configureが(今回もそうでしたが)コンパイラを探しますので良いはずなんですけどね...。
>(make allで)configureが実行された時、config.logというファイルが出来て、そこにエラーが出て>>いるはずです。それを見てください。
↑logを確認してみました↓。。。
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
configure:524: checking whether make sets ${MAKE}
configure:554: checking for gcc
configure:583: checking for cc
configure:631: checking whether the C compiler (cc ) works
configure:645: cc -o conftest conftest.c 1>&5
/usr/bin/ld: /usr/lib/libSystem.dylib load command 6 unknown cmd field
configure: failed program was:
#line 641 "configure"
#include "confdefs.h"
main(){return(0);}
↑となってます。。。もしかして「#line 641 "configure"」って言うのと「#include "confdefs.h"」って言うのはhttpd.confの中に書いてあるものなのですか?それでもってもしかしてコメントをはずしてあげればccが使えるようになるんですか?

2003/05/25 20:43 Community User への返信

プロフィールの環境情報に適当に空白を入れるなどして、自動で折り返されるようにしていただけるとありがたいです。
>/usr/bin/ld: /usr/lib/libSystem.dylib load command 6 unknown cmd field
が何を意味するのかよく分からないので触れずにおきます。助けて偉い人。
>hello worldエn[localhost:〜/Sites]
「hello world¥n」の最後の「¥n」は改行を意味します。環境によっては円記号ではなくバックスラッシュで表示されることもあります(表示フォントによります)。また便宜上全角文字で書いてますが実際には半角です。コケコッコーさんの環境ではバックスラッシュで表示されていて、それが大文字の"I"に見えてしまったようですね。改行が入っていないと結果のように繋がって表示されてしまいます。美しくないので改行を入れましょう(^^)
>↑IEでも確認してみましたが、ちゃんと「print "hello world In"」と表示されました(^_^)b
これはtest.plを単なるテキストファイルとして表示しているに過ぎません。CGIの結果として表示させたいのであれば
#! /usr/bin/perl
print "¥nhello world¥n"
とtest.cgi内でperlコマンドを呼び出すようにし、メッセージの前にも改行(¥n)を入れておきます。(おまじない。後述) 加えてtest.cgiに実行属性を付加しておきます。(chmod a+x test.cgi)
#拡張子「.cgi」はWebサーバ(httpd.conf)の設定によります。>AddHandler cgi-script .cgi
#「.pl」を許可しているのなら「.pl」でも構いません。
これをブラウザから呼び出せば(予めWebサーバが適切に設定されているなら)「hello world」とだけ表示されるはずです。
#なんか脱線している様な気がしなくもないけど取り敢えず。
ーーー
メッセージの前に改行を入れる理由:
HTTPの仕様として、まずHTTPヘッダを送信して、空行に続いて実際のデータ(HTMLデータとか)を送信する取り決めになっています。今回はヘッダ指定が面倒なので単に空行を入れてます。本来はヘッダとしてContent-typeとかいろいろと送ります。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

できあいのプログラムのmake installでエラーになってしまいます。

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。