作者: 藤岡和夫
日時: 2004/4/10(10:23)
On Fri, 09 Apr 2004 22:11:54 +0900
WATANABE Hirofumi <eban@...> さんwrote:

> なぜかというとData::Dumperだけディレクトリが1段深くなってい
> るからです。だから-L../..ではlibperlexp.aが見つかりません。
> ここだけ-L../../..にする必要があります。
> ext/Data/Dumper/MakefileのLDDFLAGSの部分を書き換えてください。

 ありがとうございます。これで応用が利きます。

> 予告:
> あとはあれとあれの[TCD]を[TCDB]に書き換えれば終了。

藤岡和夫@Dell2 /tmp/perl5.005_04
$ grep --directories='recurse' 'TCD' *
cygwin32/perlgcc:$command ="nm $libstring | grep '^........ [TCD] _'| grep -v _i
mpure_ptr | sed 's/[^_]*_//' >> perl.def";
cygwin32/perlld:        $command = "nm ".join(" ",@objs)."  $init.o $fixup.o | g
rep '^........ [TCD] _' | sed 's/[^_]*_//' >> $libname.def\n";
perlgcc:$command ="nm $libstring | grep '^........ [TCD] _'| grep -v _impure_ptr
 | sed 's/[^_]*_//' >> perl.def";
perlld: $command = "nm ".join(" ",@objs)."  $init.o $fixup.o | grep '^........ [
TCD] _' | sed 's/[^_]*_//' >> $libname.def\n";

 初めて、Cygwinでgrepを使いました(^^)

 やったかなと思ったのですが、次のようなエラーが出てきました(^^;)

Running Mkbootstrap for Opcode ()
chmod 644 Opcode.bs
LD_RUN_PATH="" ld2 -o ../../lib/auto/Opcode/Opcode.dll  -L../.. -L/gnuwin32/H-i3
86-cygwin32/i386-cygwin32/lib -lperlexp -lcygwin Opcode.o
gcc -c fixup.c
gcc -c init.cc
echo EXPORTS > Opcode.def
nm Opcode.o  init.o fixup.o | grep '^........ [TCDB] _' | sed 's/[^_]*_//' >> Op
code.def
ld --base-file Opcode.base --dll -o Opcode.dll Opcode.o  init.o fixup.o -L../..
-L/gnuwin32/H-i386-cygwin32/i386-cygwin32/lib -lperlexp -lcygwin -e _dll_entry@...
2
Opcode.o(.text+0x709):Opcode.c: undefined reference to `PL_op_mask'
Opcode.o(.text+0x773):Opcode.c: undefined reference to `PL_op_mask'
Opcode.o(.text+0x7c8):Opcode.c: undefined reference to `PL_op_mask'
Opcode.o(.text+0x7cf):Opcode.c: undefined reference to `PL_op_mask'
Opcode.o(.text+0x7f7):Opcode.c: undefined reference to `PL_op_mask'
Opcode.o(.text+0x828):Opcode.c: more undefined references to `PL_op_mask' follow

system() failed.
make[1]: *** [../../lib/auto/Opcode/Opcode.dll] Error 1
make[1]: Leaving directory `/tmp/perl5.005_04/ext/Opcode'
make: *** [lib/auto/Opcode/Opcode.dll] Error 2
 
藤岡 和夫
FGALTS@...
kazuf@...
TS Networkのために http://homepage1.nifty.com/kazuf/