どなたかWin95(!)でCygwin環境を構築して、その上でPerl/Tkを使われている方はいらっしゃいませんか?
CPANからTk800.022をとってきてビルドを試みたのですが、ipc.hやsem.hのインクルードでこけてしまいうまくいきません。
「私はこうやってPerl/TkをCygwin上でビルドして使っている。」という秘訣があればぜひ教えてください。

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

A 回答 (1件)

インクルードファイル上で「こける」理由は色々あります。



・インクルードファイルが足りない
・-Iまたは$(INCLUDE)が足りない
・-Dが間違っていて別の環境でコンパイルしようとしている
・etc...

エラーメッセージを補足してください。
    • good
    • 0
この回答へのお礼

kazekazeです。
ありがとうございます。
実は、エラーメッセージを確認しようとしたんですが、PCの調子が悪くなってしまい、確認できなくなってしまいました。
再度、Perl/Tkのmake操作が可能な状態になったらエラーメッセージを補足させてください。

お礼日時:-0001/11/30 00:00

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

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

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

Qperl niftyについて。use CGI;

画像アップロードのスクリプトを作ろうと思っているのですが、

use CGI;
という記述をすると、ここでエラーに引っかかります。
下はperl checkerでのエラー表示です

Can't locate CGI.pm in @INC (@INC contains: /usr/local/lib/perl5/5.00503/sun4-solaris /usr/local/lib/perl5/5.00503 /usr/local/lib/perl5/site_perl/5.005/sun4-solaris /usr/local/lib/perl5/site_perl/5.005 .) at a.cgi line 10.
BEGIN failed--compilation aborted at a.cgi line 10.

参考URLはここ
http://www.topstudio.co.jp/~kmuto/html/node38.html

niftyでは使えないようになってしまっているのでしょうか?

また、CGI.pmを使わないファイルアップロードの仕組みを解説しているサイトを知っている方がいたら、教えてくださいませ。

画像アップロードのスクリプトを作ろうと思っているのですが、

use CGI;
という記述をすると、ここでエラーに引っかかります。
下はperl checkerでのエラー表示です

Can't locate CGI.pm in @INC (@INC contains: /usr/local/lib/perl5/5.00503/sun4-solaris /usr/local/lib/perl5/5.00503 /usr/local/lib/perl5/site_perl/5.005/sun4-solaris /usr/local/lib/perl5/site_perl/5.005 .) at a.cgi line 10.
BEGIN failed--compilation aborted at a.cgi line 10.

参考URLはここ
http://www.topst...続きを読む

Aベストアンサー

 cgi-lib.pl というモジュールを使うのが一般的です。
 この "cgi-lib.pl" という文字列をキーワードに検索すると、たくさん出てきますよ。

 自分だけで使う場合はともかく、フリーソフトとして公表するときは CGI.pm がないプロバイダの場合に困るので、あんまり使わないんですよ。

Qperl/tkとtcl/tkの違いを知りたい

perl/tkとtcl/tkの違いを知りたい。
例えば、文法の違いだとか、互換性だとか、拡張性とかを
知りたい。宜しくお願いします。

Aベストアンサー

tkというのは、GUIのライブラリで、
それを、perlとかtclとかいった言語から使えるようにしたのが、perl/tk、tcl/tkです。

perlとtclは、全く違う言語ですから、文法は全く違いますし、互換性は全くありません。
ただ、tkという同じGUIライブラリを使用しているので、ライブラリの呼び出し方などはほぼ同じです。

Qc言語とperlのcgi設定方法

(Arch linuxにてlighttpdサーバを立ち上げています)
cgiは一般にperlが多いとは思いますが、C言語からのcgiも試みています

perlによるcgiを有効にするにはlighttpd.confの設定に以下を追加

 server.modules += ( "mod_cgi" )
 cgi.assign = ( ".cgi" => "/usr/bin/perl")
 static-file.exclude-extensions = ( ".cgi" )

C言語から作成したcgiを有効にするにはlighttpd.confの設定に以下を追加

 server.modules += ( "mod_cgi" )
 cgi.assign = ( ".cgi" => "")
 static-file.exclude-extensions = ( ".cgi" )

同一のサーバ下で「"/usr/bin/perl"」「""」ともにを有効にする設定方法はありますでしょうか
よろしくお願いいたします

(Arch linuxにてlighttpdサーバを立ち上げています)
cgiは一般にperlが多いとは思いますが、C言語からのcgiも試みています

perlによるcgiを有効にするにはlighttpd.confの設定に以下を追加

 server.modules += ( "mod_cgi" )
 cgi.assign = ( ".cgi" => "/usr/bin/perl")
 static-file.exclude-extensions = ( ".cgi" )

C言語から作成したcgiを有効にするにはlighttpd.confの設定に以下を追加

 server.modules += ( "mod_cgi" )
 cgi.assign = ( ".cgi" => "")
 static...続きを読む

Aベストアンサー

同じ拡張子で…ということかと思われます。>#1

で、該当のものを試したコトはありませんが……

>cgi.assign = ( ".cgi" => "")
に設定して、perlの方は
http://www.perl-labo.org/junbi/iamperl.htm
の設定を行い、cgiファイルに実行可のパーミッション付けてみたらどうです?

Qcygwin+cpanで初期設定にエラー

windowsXPにcygwinをいれてperlを使っています。cygwin上からcpanを利用しようと思い、
 perl -MCPAN -e shell
とすると、幾つかの入力を求められますが、すべてenterを押します。たしか、以前にlinuxでcpanを使った時にはこの方法でcpanが利用できたと思うのですが、cygwinではエラーが出ているらしく、ftp://ftp.perl.org/pub/CPAN/MIRRORED.BYという単語が含まれたメッセージが多数出ます。そして、最後に

Could not fetch MIRRORED.BY CPAN.pm needs at least one URL where it can fetch CPAN files from. Plese enter your CPAN ste:[]

と表示されます。結局、installが正常に動作しないのですが、正常に動作させる方法はあるのでしょうか。ちなみに、ActivePerl+ppmは正常に動作しています。
ご存じの方がいらっしゃったらよろしくお願いします。

windowsXPにcygwinをいれてperlを使っています。cygwin上からcpanを利用しようと思い、
 perl -MCPAN -e shell
とすると、幾つかの入力を求められますが、すべてenterを押します。たしか、以前にlinuxでcpanを使った時にはこの方法でcpanが利用できたと思うのですが、cygwinではエラーが出ているらしく、ftp://ftp.perl.org/pub/CPAN/MIRRORED.BYという単語が含まれたメッセージが多数出ます。そして、最後に

Could not fetch MIRRORED.BY CPAN.pm needs at least one URL where it can fetch CPAN files fr...続きを読む

Aベストアンサー

#1が外してるとしたらですがプロンプトが cpan> となったら
cpan>o conf
と打って urllist の項目に表示されたURL(例えばftp://ftp.kddilabs.jp/CPAN/ 等)
が間違ってないか、サーバーがダウンしていないかを確認して
必要ならurllistを変更、追加するとか?
http://www.drk7.jp/MT/archives/000885.html

Qなぜ CGI は Perl 言語で作成/動く環境が多いのか。

最近 CGI に興味をもちここで質問しながらネット検索をしました。
すると Perl 言語での CGI サンプルが一番多く C 言語で作る CGI の
サンプルが少し見つかりました。
私の使っている無料サーバーでも CGI は使えますが Perl 言語だけ有効です。
セキュリティの問題で SSI と組み合わせた C 言語の CGI は実行出来ないようです。

質問内容:
(1)なぜ CGI は Perl 言語が一番多いのか?→PHP、Cもあるのに
(2)なぜ無料サーバーの多くが Perl 言語しか使えないのか?
(3)処理の重い CGI を使うとサーバーがダウンするので使わないようにと
 私の使っている無料サーバー(infoseek)でなっています。どの程度の
 処理のことでしょうか?

上記の3つまたは1つでもアドバイスをして欲しいです。
回答をお待ちしています。

Aベストアンサー

>(1)なぜ CGI は Perl 言語が一番多いのか?→PHP、Cもあるのに
Cのコンパイルはどうする気ですか?
共有型のレンタルサーバでSSHログインができてCのコンパイルまでさせてくれる
サービスは自分は知りません。
PHPに関してはサーバの方針でしょうね。
infoseekはinfoseekになる前のfreewebの頃からPerlだけ利用できました。
途中から仕様変更して全サーバに対してPHPをインストールするのは手間でしょうから

>(2)なぜ無料サーバーの多くが Perl 言語しか使えないのか?
PerlもPHPも使えるサーバも結構ありますよ。

>(3)処理の重い CGI を使うとサーバーがダウンするので使わないようにと
今の利用規約は知りませんが自分の知っているときは
箱庭系、チャット系、CGIゲーム系はだめですね。

>modによりperlの難点であった実行速度も改善されていますし。
CGIモードとmod_perlのそれぞれバージョンで挙動が違うみたいで
普段はあまり利用しないですね。

QWindowsでperl/tkに挑戦

windows 98SE 上で perl/tk を使って GUI プログラミングに挑戦!と思ったのですが、
MainWindow が出る前に、必ず DOS窓が一瞬現れて消えるのが、どうも気になります。

この DOS窓を出さない方法はあるのでしょうか?
よろしくお願いします。

Aベストアンサー

perl.exeではなくwperl.exeがスクリプトを実行するように仕込んでおけば、コマンドプロンプトを表示せずに起動するようになります。

例えばWindows + ActivePerlでは通常は拡張子*.plをperl.exeで起動するように設定していると思いますので拡張子*.wplとかをwperl.exeで起動するように設定しておけばコマンドプロンプト無しで処理されます。

参考URL:http://www.mail-archive.com/activeperl@listserv.activestate.com/msg06024.html

QPerlとphpのCGI版

Perlは文書に最適化された言語だと今日知りました。
そこで思ったのですが、PerlとphpのCGI版の場合だと
ファイルの読み書きなどを考えてみたところ、速度にさほど違いはないのでしょうか?
mod_perlとphpのモジュール版の速度は同じくらいだと聞きます
となればphpのCGI版はさほど早くなく、Perlと同程度じゃないかと思ったわけです

どなたか教えてください!

Aベストアンサー

たびたびすみません。
ANo.1 で紹介した比較の、CGI版もありました↓
http://www.hippo2000.info/perl/tbench.htm

やはり結果は、同じようなもの、のようですね。
結局、処理する内容によって勝敗が異なるので一概には言えないと思いますが、それは同時に「それほど微妙な差である」ことを意味すると思います。つまり絶対的な優劣はないです。
それこそプログラマーの好みや事情で決めれば良いレベルだと思います。「DBならPHP」などと言われることもありますがperlでも当然可能ですし、どちらかにしかできないこともなく、PHPは初心者にも簡単で覚えやすい、という利点もあります。

ちなみに私は、特にどちらが好きというのはありませんが、なぜかCGI版perlとmod版PHPが比較されることが時々あり、そして決まって「PHPのほうが速い」などと不可解な結論に…、というのが疑問なんですよね。
推測ですが、perlのほうが圧倒的に歴史が長いため、CGI版さらには旧いバージョンが対象にされてしまっているのでは、と考えています。
そのような不公平な勝負では、ついつい不利な方を応援したくなります(笑)。

さらに言えば、「PHPのほうが簡単」というのもちょっと疑問で、ご存知かと思いますが、そもそもperlは「Practical Extraction and Report Language」の略、dakara222さんのおっしゃるように本来テキスト処理を大得意とするレポート言語です。便利ゆえにWebサイトに設置してページの出力に使うことが多いですが、本来、たとえば手元のウィンドウズにインストールしておいて、「HTMLファイルそのもの」を大量に作らせる、なんていうことや、DBのソースを作ったり、システム管理者が設定ファイルの編集によく使っている、など、大変便利な本来の(?)使い方があります。
PHPはHTML文書内での使用に特化したものですから、そのために最適化されているわけで、当然そこだけでの比較はおかしいんですよね。

なんだかperl寄りの意見になってしまいましたが(苦笑)…、正しい情報を持ってケースバイケースで使い分けるのが一番ですね。

たびたびすみません。
ANo.1 で紹介した比較の、CGI版もありました↓
http://www.hippo2000.info/perl/tbench.htm

やはり結果は、同じようなもの、のようですね。
結局、処理する内容によって勝敗が異なるので一概には言えないと思いますが、それは同時に「それほど微妙な差である」ことを意味すると思います。つまり絶対的な優劣はないです。
それこそプログラマーの好みや事情で決めれば良いレベルだと思います。「DBならPHP」などと言われることもありますがperlでも当然可能ですし、どちらかにしかでき...続きを読む

Q(Perl CPAN) DBDがはいらない

「windows7 64bit に ActivePerl をいれています」

以下のプログラムを書いて実行したところ、エラーメッセージがでてきました。


Software error:

DBD::MySQL initialisation failed: Can't locate object method "driver" via package "DBD::MySQL" at C:/usr/local/lib/DBI.pm line 808.

Perhaps the capitalisation of DBD 'MySQL' isn't right. at C:/Apache2.2/htdocs/00001/shinki_data_sakusei.pl line 33.


これはつまり、DBD::MySQL がないよ!という意味であると思うのですが、ppmを起動してDBDにあたるモジュールをインストールして再実行してもまだ同じエラーがでます。どうしてもwindows7上で作らなければならないので、困っています。どこか参考になるサイトはないでしょうか?

=========================================
use strict;
use warnings;

# エラーをブラウザに表示
use CGI::Carp qw(fatalsToBrowser);

use utf8;
binmode STDIN, ':encoding(UTF-8)';
binmode STDOUT, ':encoding(UTF-8)';
binmode STDERR, ':encoding(UTF-8)';
use Encode;
use DBI;


# プログラム開始

# ユーザ名とパスワード
my $user = 'root';
my $pass = 'root';

#データベースへ接続
my $db = DBI->connect('DBI:MySQL:localhost', $user, $pass,);
if ( ! $db ){
print "エラー: $db->err $db->errstr\n";
}

# 命令
my $sth = $db->prepare( "SELECT * FROM login" );

# 実行
$sth->execute;

# 出力
while( my @row = $sth->fetchrow_array ){
print "@row\n";
}

#データベースから切断
$db->disconnect;


__END__

「windows7 64bit に ActivePerl をいれています」

以下のプログラムを書いて実行したところ、エラーメッセージがでてきました。


Software error:

DBD::MySQL initialisation failed: Can't locate object method "driver" via package "DBD::MySQL" at C:/usr/local/lib/DBI.pm line 808.

Perhaps the capitalisation of DBD 'MySQL' isn't right. at C:/Apache2.2/htdocs/00001/shinki_data_sakusei.pl line 33.


これはつまり、DBD::MySQL がないよ!という意味であると思うのですが、ppmを起動してDB...続きを読む

Aベストアンサー

ppmで DBD::mysql(DBD-mysql)はインストール済なんですね。
そうなのでしたら、おそらく

> my $db = DBI->connect('DBI:mysql:localhost', $user, $pass,);

のように、mysqlを小文字で指定していないのが原因でしょう。

Windowsではファイル名の大文字小文字は区別されませんが、
Perlとしてはモジュール名は大文字小文字が区別されます。

QCGI/Perl

CGI/Perlについて1から学びたいと思い、本を買おうと思っているのですが、たくさんありすぎて、どれを買えばわかりません。
CGIやPerlについてはまったくの初心者です。
いい本があったら教えてください。

Aベストアンサー

超簡単なCGI/Perlを学ぶ本は

技術評論社
速習webプログラミング
perl/CGI超入門
藤森水絵著

がいいと思います

(でもこの本JAVASCRIPTでできることたくさん乗ってるけどね・・・)

参考URL:http://www.gihyo.co.jp/books/syoseki.php/4-7741-1662-9

QPerl/Tk Entry に対して見出しを付けたい

Win-XP,Active-Perl(v5.8.6)利用です。

複数のインプットボックスを持つ、
┌────────────┐
│   ┌───────┐│
│品名:│       ││
│   └───────┘│
│   ┌───────┐│
│科目:│       ││
│   └───────┘│
│   ┌───────┐│
│価格:│       ││
│   └───────┘│
│ ┌──┐┌─────┐│
│ │OK││キャンセル││
│ └──┘└─────┘│
└────────────┘
こんな感じのウィンドウを作りたいのですが、
(図が崩れているかも知れませんが大体のイメージで・・・)
========================================
use Tk;
$top = new MainWindow;
$arg[0] = $top->Entry(-title=>'品名:')->pack;
$arg[1] = $top->Entry(-title=>'科目:')->pack;
$arg[2] = $top->Entry(-title=>'価格:')->pack;
$b[0] = $top->Button(-text=>'OK',-command=> [\&exec,\@arg])->pack;
$b[1] = $top->Button(-text=>'キャンセル',-command=> [\&exec,(-1)])-pack;
========================================
unknown option "-title" at C:\Perl\site\lib/Tk/Widget.pm
Entryに対するオプションが分かりませんでした。

もしくは、Label や Message を組み合わせて実現するものでしょうか。
あと、実際に図のような配置でフォームを作りたい場合、
Buttonの部分の書き方はどのようにすれば良いですか?

以上、ご存知の方、ご教示よろしくお願い致します。

Win-XP,Active-Perl(v5.8.6)利用です。

複数のインプットボックスを持つ、
┌────────────┐
│   ┌───────┐│
│品名:│       ││
│   └───────┘│
│   ┌───────┐│
│科目:│       ││
│   └───────┘│
│   ┌───────┐│
│価格:│       ││
│   └───────┘│
│ ┌──┐┌─────┐│
│ │OK││キャンセル││
│ └──┘└─────┘│
└────────────┘
こんな感じのウィンドウを作りたいのですが、
(図が崩れているかも知れませんが大体のイメージで・・・)
===================...続きを読む

Aベストアンサー

use strict;
use warnings;
use Tk;

### Main Window
my $window = MainWindow->new();

### Frame
# Goods
my $goods_frame = $window->Frame(
-width => 240,
-height => 30,
-borderwidth => 2,
-relief => 'flat',
);
$goods_frame->pack();

# Price
my $price_frame = $window->Frame(
-width => 240,
-height => 30,
-borderwidth => 2,
-relief => 'flat',
);
$price_frame->pack();

# Confirm
my $confirm_frame = $window->Frame(
-width => 240,
-height => 30,
-borderwidth => 2,
-relief => 'flat',
);
$confirm_frame->pack();

### Widgets
# Goods Label
my $goods_label = $goods_frame->Label(
-text => 'Goods',
-width => 10
);
$goods_label->pack( -side => 'left' );

# Goods Entry
my $goods_entry = $goods_frame->Entry(
-width => 30,
-background => 'white'
);
$goods_entry->pack( -side => 'left' );

# Price Label
my $price_label = $price_frame->Label(
-text => 'Price',
-width => 10
);
$price_label->pack( -side => 'left' );

# Price Entry
my $price_entry = $price_frame->Entry(
-width => 30,
-background => 'white'
);
$price_entry->pack( -side => 'left' );

# OK Button
my $ok_button = $confirm_frame->Button( -text => 'OK', -width => 8 );
$ok_button->pack( -side => 'left' );

# Cancel Button
my $cancel_button = $confirm_frame->Button(
-text => 'Cancel',
-width => 8,
);
$cancel_button->pack( -side => 'left' );

### Loop
MainLoop();

use strict;
use warnings;
use Tk;

### Main Window
my $window = MainWindow->new();

### Frame
# Goods
my $goods_frame = $window->Frame(
-width => 240,
-height => 30,
-borderwidth => 2,
-relief => 'flat',
);
$goods_frame->pack();

# Price
my $price_frame = $window->Frame(
-width => 240,
-height => 30,
-borderwidth => 2,
-relief => 'flat',
);
$price_frame->pack();

# Confirm
my $confir...続きを読む


人気Q&Aランキング

おすすめ情報