perlの初心者の者です.
以下のようなサンプルソースを実行すると
Can't locate auto/YAML/Syck/DumpYAML.al in @INC (@INC contains: C:/Perl/site/lib
C:/Perl/lib .) at C:/Perl/site/lib/YAML/Syck.pm line 113
というエラーが出てしまってyaml.txtに当然実行結果が書き込まれていません.原因はなんでしょうか?cpanコマンド, ppmコマンドを用いてYAML::Syckをうまくインストールできなかったのでcpanサイトにいってtarボールを取ってきて解凍し, 適当な格納モジュールフォルダに格納しています.
サンプルスクリプト
#!/usr/bin/perl
use YAML::Syck;
$data = [ {data1=>10, data2=>20, data3=>30} ];
DumpFile("test.txt", $data);
出力結果はtest.txtは
data1: 10
data2: 20
data3: 30
になるはずなのですが.
No.3ベストアンサー
- 回答日時:
>Microsoft Visual C++ 2005 Express Editionでよろしいでしょうか?
2008だと問題がでるとかでないとか聞いたことがありますが
2005ならたぶん大丈夫だと思います。
> cpan YAML::Syckと実行してみたところインストールが始まったのかいろんなファイルが取得してきていたようですが,
> これでコンパイル, インストールできたのでしょうか?初歩的な質問で申し訳ありませんね.
cpan YAML::Syck と入力したのであれば、
・ネットワーク越しにtar玉をとってきて
・作業用ディレクトリに展開して
・コンパイル
・テスト
・インストール
とすべてやってくれるはずですので、
最後にエラーを示すメッセージがでていなければOKです。
ありがちなのはテストで失敗する項目があって
インストールに進まないということですが。
この回答への補足
sakusaker7様,
ご回答ありがとうございます.
>最後にエラーを示すメッセージがでていなければOKです。
エラー的な内容は特に見れませでした.
正常にコンパイル, テスト, インストールできているのか確認する方法はありますか?
確認のため再度実行
>cpan YAML::Syck
CPAN: Storable loaded ok (v2.16)
Going to read C:\Perl\cpan\Metadata
Database was generated on Mon, 21 Jan 2008 11:38:00 GMT
YAML::Syck is up to date (1.01).
おそらく正常にコンパイル, テスト, インストールができたと思うのですが, サンプルスクリプトを再度実行しても上述のようにエラーがまだ出ます.
私のものだとインストールされたものがC:\perl\cpan\build\YAML-Syck-1.01-WxCiJBに格納されていると思うのですが.
恐縮で申し訳ありません.
No.5
- 回答日時:
XAMPPですか、PerlインタプリタはActivePerlのものと同じだけど
ディレクトリ構成とかが違うみたいですね。
ちょっと調べたところではなんかアドオンを入れないとcpanも
まともに使えないとかありましたけどその辺は大丈夫ですか?
Syck.dllがきちんとインストールされていないと動かないはずなので
とりあえず、Syck.dll が一体どこにインストールされたのか
チェックしてみてください。
一つ確認ですが、XAMPPのものとは別に、自分でActivePerlを
インストールしていませんか?
xamppと場合だと実行がうまく実行されません.
別のスレを立てるのでよろしくお願いします.
>ちょっと調べたところではなんかアドオンを入れないとcpanも
>まともに使えないとかありましたけどその辺は大丈夫ですか?
そのへんが理解できていません.何か参考になるWebページあったら教えてください.
>Syck.dllがきちんとインストールされていないと動かないはずなので
>とりあえず、Syck.dll が一体どこにインストールされたのか
>チェックしてみてください。
検索かけたところありません.
>一つ確認ですが、XAMPPのものとは別に、自分でActivePerlを
>インストールしていませんか?
まさにその通りです.
No.4
- 回答日時:
> C:\perl\cpan\build\YAML-Syck-1.01-WxCiJB
これはビルドに使われてた一時ディレクトリです。
実際にインストールされると、
c:\perl\site\lib\YAML\
などに Syck.pm がコピーされます。
また、Cコンパイラがビルドしたバイナリが
c:\perl\site\lib\auto\yaml\syck
に置かれているはずです。
わたしのところだと
c:\perl\site\lib\auto\yaml\syck のディレクトリ
2008/01/22 16:29 423 .packlist
2008/01/22 16:28 0 Syck.bs
2008/01/22 16:28 77,824 Syck.dll
2008/01/22 16:28 786 Syck.exp
2008/01/22 16:28 1,910 Syck.lib
2008/01/22 16:28 257,024 Syck.pdb
6 個のファイル 337,967 バイト
こんな感じですがどうなってますか?
あと、c:\perl\site の下に syck.pm が複数あると思いますが、
それを全部列挙してみてください。
C:\Perl\site\lib\auto\YAML\Syck>cd \perl\site
C:\Perl\site>dir /s Syck.pm
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は B03A-311F です
C:\Perl\site\lib\JSON のディレクトリ
2008/01/19 02:45 5,236 Syck.pm
1 個のファイル 5,236 バイト
C:\Perl\site\lib\YAML のディレクトリ
2008/01/19 02:45 8,095 Syck.pm
1 個のファイル 8,095 バイト
C:\Perl\site\lib\YAML\Dumper のディレクトリ
2007/10/20 17:47 107 Syck.pm
1 個のファイル 107 バイト
C:\Perl\site\lib\YAML\Loader のディレクトリ
2007/10/20 17:47 107 Syck.pm
1 個のファイル 107 バイト
ファイルの総数:
4 個のファイル 13,545 バイト
この回答への補足
sakusaker7様,
ご回答ありがとうございます.
ちなみにxamppをインストールしています.
>c:\perl\site\lib\YAML\
などに Syck.pm がコピーされます。
はい。コピーされています.
>また、Cコンパイラがビルドしたバイナリが
>c:\perl\site\lib\auto\yaml\syck
>に置かれているはずです。
私のところだとc:\perl\site\lib以下の\auto\syckが存在しません。
auto\libというフォルダはc:\xampp\perl\libにauto\YAMLというものがありますが.このsakusaker7様のおっしゃるようなc:\perl\site\lib\auto\yaml\syck のディレクトリには下記のようなバイナリファイルが存在していません.
2008/01/22 16:29 423 .packlist
2008/01/22 16:28 0 Syck.bs
2008/01/22 16:28 77,824 Syck.dll
2008/01/22 16:28 786 Syck.exp
2008/01/22 16:28 1,910 Syck.lib
2008/01/22 16:28 257,024 Syck.pdb
6 個のファイル 337,967 バイト
正常のインストールされていないのでしょうか?
その代わりに
C:\xampp\perl\site\lib\auto\YAMLのディレクトリには
Syck.pmを含んだ12個のファイルがあります.
Syck.dllといったファイルがなく拡張子が.pmというモジュールのファイルばかりが存在しています.正常にインストールされていないのでしょうか?
No.2
- 回答日時:
一つ確認したいのですが、エラーメッセージに出ているディレクトリ名からすると
ActivePerl っぽいですけどそうですか?
そしてその場合、Visual C++ コンパイラはインストールされていますか?
もしきちんと使える状態になっていれば、
cpan YAML::Syck
で何の問題もなく入ると思うんですが。
tarアーカイブからインストールする場合は、
perl Makefile.pl
nmake
nmake install
でいけると思います。
この回答への補足
sakusaker7様,
ご回答ありがとうございます.
ActivePerlを使っています.
>Visual C++ コンパイラはインストールされていますか?
Microsoft Visual C++ 2005 Express Editionでよろしいでしょうか?
インストールはしてます.
そこで適当な場所で
cpan YAML::Syckと実行してみたところインストールが始まったのかいろんなファイルが取得してきていたようですが, これでコンパイル, インストールできたのでしょうか?初歩的な質問で申し訳ありませんね.
No.1
- 回答日時:
>tarボールを取ってきて解凍し, 適当な格納モジュールフォルダに格納しています.
YAML::Syck ってXS使ってるのでCコンパイラでコンパイルしないと
インストールできませんけど?
C:\perl\cpan\build\YAML-Syck-1.00-XT929A のディレクトリ
2008/01/11 02:55 <DIR> .
2008/01/11 02:55 <DIR> ..
2008/01/11 02:55 <DIR> blib
2007/10/20 17:47 21,498 bytecode.c
2008/01/11 02:55 16,402 bytecode.obj
2007/12/10 06:07 18,635 Changes
2007/10/20 17:47 787 COMPATIBILITY
2007/10/20 17:47 2,749 COPYING
2007/12/10 05:41 38,865 emitter.c
2008/01/11 02:55 43,127 emitter.obj
2007/10/20 17:47 59,778 gram.c
2007/10/20 17:47 2,262 gram.h
2008/01/11 02:55 30,203 gram.obj
2007/10/20 17:47 3,408 handler.c
2008/01/11 02:55 8,383 handler.obj
2007/10/20 17:47 45,355 implicit.c
2008/01/11 02:55 34,634 implicit.obj
2008/01/11 02:55 <DIR> inc
2008/01/11 02:55 <DIR> lib
2008/01/11 02:55 29,236 Makefile
2007/10/20 17:47 1,093 Makefile.PL
2007/10/20 17:47 1,143 MANIFEST
2007/10/20 17:47 368 META.yml
2007/10/20 17:47 7,674 node.c
2008/01/11 02:55 19,140 node.obj
2007/10/23 02:58 1,894 perl_common.h
2007/12/10 05:13 37,230 perl_syck.h
2008/01/11 02:55 0 pm_to_blib
2007/10/23 02:57 154,956 ppport.h
2007/10/20 17:47 1,301 ppport_math.h
2007/10/20 17:47 1,014 ppport_sort.h
2007/12/10 06:08 1,746 README
2007/12/10 06:11 4,749 SIGNATURE
2008/01/11 02:55 0 Syck.bs
2008/01/11 02:55 2,900 Syck.c
2008/01/11 02:55 86 Syck.def
2007/10/20 17:47 12,779 syck.h
2008/01/11 02:55 85,696 Syck.obj
2007/10/20 17:47 329 Syck.xs
2007/10/20 17:47 10,125 syck_.c
2008/01/11 02:55 25,987 syck_.obj
2007/10/20 17:47 11,073 syck_st.c
2007/10/20 17:47 1,049 syck_st.h
2008/01/11 02:55 17,232 syck_st.obj
2008/01/11 02:55 <DIR> t
2007/10/20 17:47 58,233 token.c
2008/01/11 02:55 46,015 token.obj
2008/01/11 02:55 102,400 vc70.pdb
2007/10/20 17:47 7,568 yaml2byte.c
2008/01/11 02:55 7,757 yaml2byte.obj
2007/10/20 17:47 6,704 yamlbyte.h
この回答への補足
sakusaker7様,
ご回答ありがとうございます.
>YAML::Syck ってXS使ってるのでCコンパイラでコンパイルしないと
>インストールできませんけど
とのことですが, コンパイル方法からインストール方法までよければ教えていただけないでしょうか?大変恐縮ではございますが.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ラズベリーパイ初心者です。 ラ...
-
Perlのエラーについてご教授く...
-
perl 初等プログラミングについて
-
perlプログラミング 空白行削除
-
テキストファイルで提出とは?
-
perlで複数のファイルの処理に...
-
Wallpaper Engineでおすすめの...
-
プログラムを全くいじってない...
-
INDIRECT 横に再度抽出したい
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Jcode.pmについて
-
Pg.pmモジュールがロードできない
-
Python エクセル読み込み xlrd...
-
cpanからモジュールをインスト...
-
python
-
YAMLについて
-
Perl+DBD::Oracleのエラーがわ...
-
use lib qw(変数名);は無理?
-
perlのモジュールについて
-
Expat.soが読めない!?
-
@INCにrequireされたファイルが...
-
ワーニング? encoding.pm
-
DBIをCPANからインストール時に...
-
ActivePerlに含まれるモジュール
-
XML::Parser::Expat が無い?
-
Perl初心者です このエラーの意...
-
Pythonの設定方法(text_factory)
-
CPAN の初期設定のやり直し方を...
-
make 時に標準以外のディレクト...
-
vimのvsplit実行時の挙動に関して
おすすめ情報