Hatena::Groupasakura

浅倉卓司@blog風味? このページをアンテナに追加 RSSフィード

Error : RSSが取得できませんでした。

2009-04-21(Tue)

JPEGなどに対応したImager for Win32を作るのはそんなに難しくないのだけれど、

| 00:17 |  JPEGなどに対応したImager for Win32を作るのはそんなに難しくないのだけれど、 - 浅倉卓司@blog風味? を含むブックマーク  JPEGなどに対応したImager for Win32を作るのはそんなに難しくないのだけれど、 - 浅倉卓司@blog風味? のブックマークコメント

 StrawberryPerlとGnuWin32を使えばJPEGその他に対応したImagerをmakeするのは難しくないのだけれど、そこから抜き出したdllを同梱したppmって配布してもいいのかな?*1 ライセンス読めば書いてるんだろうけれど。


 以下、Imagerのmakeの仕方のメモ:

  • libjpegとかlibpngとか必要なライブラリの「Complete package, except sources」をダウンロードしてインストールする。
  • インストール先のlib(c:\GnuWin32\lib)にある「*.lib.a」なファイルは「*.a」にリネームする。
  • 以下のようにしてMakefile.PLのオプションにGnuWin32のincludeとlibを指定する必要がある。
> perl Makefile.PL --incpath=c:/GnuWin32/include --libpath=c:/GnuWin32/lib
  • makeは普通に(StrawberryPerlならdmake)。
  • make testの時にGnuWin32のbinにpathが通ってないとdllがないというアラートが出るはず。
    • jpeg62.dllとかlibpng3.dllとかlibtiff3.dllとかgiflib4.dllとか、そのあたり。
  • これらのファイルはGnuWin32のbinにあるので、そこにpathを通す。
  • pathを通したくない or ppmで配布したい時は、blib/arch/auto/Imager/ にコピーしておく。

 ちなみにGnuWin32のインストール先を「c:\strawberry\c」にすると、「*.lib.a」を「*.a」にリネームするだけでインストールできるんじゃないかと思います。


 ……まあこんな感じで、誰かがSSE2未対応のImager::AnimeFaceをmakeしてくれるか、自力でmakeする方法が見つかるのを待っていたり*2(笑)。


追記

 dll抜きをアップしたので、必要な人は上述のGnuWin32のdllをインストールしたあとに

> ppm install http://www2j.biglobe.ne.jp/~asakura/perl/Imager-without_dll.ppd

――としてモジュールをインストールすればいいと思うよ。

*1:dllを同梱しないppmを作っておいて「必要なdllはここからダウンロードしる!」でもいいかもですが。

*2:makeができんのはCLAPACKなので、まずはそこかな。あと、ちゃんとnvxsの中身をチェックしよう……。

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20090421

2009-04-20(Mon)

Imager::AnimeFace for ActivePerlのインストール報告

| 22:32 |  Imager::AnimeFace for ActivePerlのインストール報告 - 浅倉卓司@blog風味? を含むブックマーク  Imager::AnimeFace for ActivePerlのインストール報告 - 浅倉卓司@blog風味? のブックマークコメント

 ActivePerl版のImager::AnimeFaceが公開されましたので、さっそくインストールに関するレポートを。


 Imagerについては記事にもあるとおり、ActiveStateのものではダメみたいでしたJPEGが使えないので、記事の通りにImagerをインストールしました。

 Imager::AnimeFaceのインストールをしようとすると

ppm install failed: Can't find any package that provides ExtUtils-MakeMaker for Imager-AnimeFace

――というエラーが出るかもしれません。

 これはImagerかExtUtils-MakeMakerをインストールしていない時に出ます。ExtUtils-MakeMakerのほうはインストールしてなくても構わないはずなので、Imager-AnimeFace.ppdとImager-AnimeFace.tar.gzをダウンロードして、Imager-AnimeFace.ppdの中にあるExtUtils-MakeMakerの行を削除して、

>ppm install Imager-AnimeFace.ppd

――とかすればインストールできるはずです。


 次に、モジュールがロードできてるか確認するために

>perl -MImager::AnimeFace -e 1

――とかやってみると、エラーが出るかもしれません。

Can't load 'C:/Perl/site/lib/auto/Imager/AnimeFace/AnimeFace.dll' for

module Imager::AnimeFace: load_file:このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。アプリケーションを再度インストールすることにより問題が解決する場合があります。 at C:/Perl/lib/XSLoader.pm line 70.

at C:/Perl/site/lib/Imager/AnimeFace.pm line 21

Compilation failed in require.

BEGIN failed--compilation aborted.

――というエラーであれば、元記事にあるように「ダウンロードの詳細 : Visual C++ 2008 SP1 再頒布可能パッケージ (x86) 」が必要なためですので、ダウンロードしてインストールします。


 あるいは

Can't load 'C:/Perl/site/lib/auto/Imager/AnimeFace/AnimeFace.dll' for module Imager::AnimeFace: load_file:指定されたプロシージャが見つかりません。 at C:/Perl/lib/XSLoader.pm line 70.

at C:/Perl/site/lib/Imager/AnimeFace.pm line 21

Compilation failed in require.

BEGIN failed--compilation aborted.

――というエラーが出るかもしれません。

 これはActivePerlのバージョンが低いためだと思われるので(少なくともbuild819で出た)、新しいものをインストールしましょう(build825なら大丈夫だった)。


 そのほかの注意点としては、Perl5.8用なので、5.10では動きません。5.10に対応されてました。素早いなぁ。

 StrawberryPerlで動くかどうかは未確認もppmでインストールできます


 あと、Pentium-Mならちゃんと動いたのですが、Athlon XPではエラーが出て動作しませんでした*1。これはおそらくSSE2を利用しているためじゃないかと思います。

(あるいはAthlon XPのOSがWindows2000だからエラーが出ている可能性もゼロではないですけれど……)


 とりあえず、ご報告まで。


追記

 JPEGなどが使えるImagerのppmは5.8向けしかないみたいなので、5.10などでmakeする方法を書きました

*1:「例外:unknown software exception (0x000001d)が発生しました」というダイアログがポップアップします。

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20090420

2009-04-18(Sat)

Dropboxの紹介をすると容量を増やしてくれるらしい。

| 22:28 |  Dropboxの紹介をすると容量を増やしてくれるらしい。 - 浅倉卓司@blog風味? を含むブックマーク  Dropboxの紹介をすると容量を増やしてくれるらしい。 - 浅倉卓司@blog風味? のブックマークコメント

 普段使っているPCがWindows2000なのでどうやってEye-Fiを便利に使うか悩んでいたのですが、

  1. 会社で使っているWindows XPマシンに転送する設定にする
  2. Eye-Fiのアップ先ディレクトリをDropboxで共有してる場所に指定する
  3. Dropbox経由でWindows2000マシンに転送される

――という大変回りくどい状態にしています。

 というわけで、Dropboxは便利なので使ってみてはいかがでしょうか。こちらから登録できます*1

*1:ここから登録すると、登録した人も通常より容量が増える、とのこと。

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20090418

2009-04-17(Fri)

Win32でImager::AnimeFace、の続き

| 00:07 |  Win32でImager::AnimeFace、の続き - 浅倉卓司@blog風味? を含むブックマーク  Win32でImager::AnimeFace、の続き - 浅倉卓司@blog風味? のブックマークコメント

 「CLAPACK-3.1.1-VisualStudio.zipを使ってみたら?」とのことで、そちらのヘッダとライブラリを使うことにしてnvxsのmakeをしてみる。

 MinGWgccは3.4.5なので、こちらに書かれているように./configureしたあとのMakefileから-march=nativeと-mfpmath=sseを外す必要があるみたい。

 そうそう、configureでのprefixは

$ ./configure --prefix=c:/strawberry/c

とかすればいいはず。あるいはMSYSで指定してるなら/mingwあたりかな。


 で、makeは無事に終了。

 ここさえ通ればImager::AnimeFaceのmakeだけだから楽勝かなと思ったら、どうもシンボルを見つけられないらしく

AnimeFace.o:AnimeFace.c:(.text+0x35): undefined reference to `nv_matrix3d_alloc'
AnimeFace.o:AnimeFace.c:(.text+0x58): undefined reference to `nv_matrix3d_alloc'
AnimeFace.o:AnimeFace.c:(.text+0x7b): undefined reference to `nv_matrix3d_alloc'
AnimeFace.o:AnimeFace.c:(.text+0x9b): undefined reference to `nv_matrix3d_alloc'
AnimeFace.o:AnimeFace.c:(.text+0xbd): undefined reference to `nv_matrix3d_alloc'
AnimeFace.o:AnimeFace.c:(.text+0xdf): more undefined references to `nv_matrix3d_alloc' follow
AnimeFace.o:AnimeFace.c:(.text+0xf3): undefined reference to `nv_matrix_zero'
AnimeFace.o:AnimeFace.c:(.text+0x101): undefined reference to `nv_matrix_zero'
AnimeFace.o:AnimeFace.c:(.text+0x10f): undefined reference to `nv_matrix_zero'
AnimeFace.o:AnimeFace.c:(.text+0x11d): undefined reference to `nv_matrix_zero'
AnimeFace.o:AnimeFace.c:(.text+0x12b): undefined reference to `nv_matrix_zero'
AnimeFace.o:AnimeFace.c:(.text+0x2ba): undefined reference to `nv_gray'
(以下略)

のようにリンク時にエラーが出たところでとりあえず終了。


 そういやsakuraのサーバでmakeした時もシンボルが解決できなかったんだよなぁ。あちらは実行時に「Undefined symbol "nv_face_mlp_parts"」でしたが。

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20090417

2009-04-16(Thu)

ここしばらくImager::AnimeFaceをWin32でmakeしようとしてたんだけど、

| 23:39 |  ここしばらくImager::AnimeFaceをWin32でmakeしようとしてたんだけど、 - 浅倉卓司@blog風味? を含むブックマーク  ここしばらくImager::AnimeFaceをWin32でmakeしようとしてたんだけど、 - 浅倉卓司@blog風味? のブックマークコメント

 Imager::AnimeFaceはおもろそうだけど、ローカル環境で使いたいなー、でもWindowsだとmakeできんよなぁとか思っていたのですが。

 ふとStrawberryPerlは開発環境がついてるからいけるんじゃね? とか考えてmakeを始めてみた。


 Imagerは当然の問題なくインストールできる。

 CLAPACKとnvxsについてはStrawberryPerlのMinGWだと当然makeできんよなー、と思っていたのだけれど、そんな時のためにMSYSがあるのを思い出してインストール。

 張り切ってCLAPACKをmakeすると「sys/times.hがねーぞ」と怒られる。どうやら例のPOSIX環境がどーのとからしい。困った。が、パッチを作ってる方がいるのを発見! ありがとう! それを適用してみた。が、testでこける。

 調べてみたら、どうも-ffloat-storeオプションを付けないとダメらしい。ってことでオプション追加してみたんだけど、やっぱりダメ。

 うちで使ってるマシンが古いからかねぇ?(ちなみにAthlonXPなWindows2000Pentium-MなWindows XPでダメだった)。


 ――というわけで最初のCLAPACKのmakeで挫折中。



 ……つづく

ultraistultraist2009/04/17 02:24こんにちは。実はnvxsの部分はVC++で作っていてプロジェクトがあるのですが、顔以外の機能で多数のライブラリに依存しまくっているので、一部をmake distで切り抜いた形になっています。CLAPACKは、CLAPACK-3.1.1-VisualStudio.zipを使っているので、これをreimpで変換したら…と思うのですが試せていないです。

asakura-tasakura-t2009/04/17 12:25どうもですー。
そうか、Win32のlibバイナリは公開されてるからreimpで変換して使えるかもですね。試してみます。

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20090416
2004 | 01 | 02 | 03 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 08 | 09 | 10 | 11 | 12 |
2007 | 02 | 03 | 04 | 05 | 06 | 07 | 10 | 11 | 12 |
2008 | 02 | 03 | 04 | 06 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 02 | 03 | 04 | 05 | 07 | 08 | 10 | 11 | 12 |
2013 | 01 | 05 | 07 |
2014 | 01 | 02 |
2016 | 01 |
2017 | 01 | 05 |