タイトルに記載されている構成を使用してこのビルドの問題に直面しています。ビルドしようとしているPerlモジュールはMongoDB::Connection
です。私はCPANシェルを経由して構築する、または手動でこのようにしています:Microsoft VC(cl.exe)2010(10.0)ExpressとActivePerl 5.12.4/32を使用したPerl/Cモジュールのビルド
C:\Opt\Perl512.32\bin\perl.exe Makefile.PL
nmake
cl.exe
ためのコマンドラインは次のとおりです。ここで
cl -c -I. -MD -Zi -DNDEBUG -DVERSION=\"0.43\" -DXS_VERSION=\"0.43\"^
/Foxs/BSON.obj "-IC:\Opt\Perl512.32\lib\CORE" xs\BSON.c
は、エラーコードとその頻度は以下のとおりです。
6 C2040 'operator' : 'identifier1' differs in levels of indirection
from 'identifier2'
32 C2059 syntax error : 'token'
7 C2081 'identifier' : name in formal parameter list illegal
54 C2143 syntax error : missing 'token1' before 'token2'
2 C2371 'identifier' : redefinition; different basic types
これらのエラーはすべて、前処理段階での障害の症状であるように見えます。
私はここで全体の出力を貼り付けることはありませんが、初めは次のとおりです。
c:\opt\perl512.32\lib\core\win32.h(368) : error C2143: Syntaxfehler: Es fehlt ')' vor '*'
c:\opt\perl512.32\lib\core\win32.h(368) : error C2081: 'Stat_t': Name in der formalen Parameterliste ist ungültig
c:\opt\perl512.32\lib\core\win32.h(368) : error C2143: Syntaxfehler: Es fehlt '{' vor '*'
c:\opt\perl512.32\lib\core\win32.h(368) : error C2059: Syntaxfehler: ')'
c:\opt\perl512.32\lib\core\win32.h(369) : error C2143: Syntaxfehler: Es fehlt ')' vor '*'
c:\opt\perl512.32\lib\core\win32.h(369) : error C2081: 'STRLEN': Name in der formalen Parameterliste ist ungültig
だから、手がかりStat_t
与えられ、私は問題を追跡しようとしました。
ack Stat_t c:\opt\perl512.32\lib\core\
のでStat_t
がCORE\dosish.h
とCORE\unixish.h
で定義されています。どちらも条件付きでCORE\perl.h
に含まれています。私はコンパイルしようとしているファイルからインクルードされています。だからはになります。
- 問題を追跡するにはどうすればよいですか?
- このエラーの原因は何ですか?
ネット上に浮かぶいくつかの類似のエラーがあります。ここではあなたのためのGoogle検索:
http://www.google.com?q=perl+win32.h+c2059+c2143+c2081+c2371
感謝。
バグの場合、私はそれがMongoDBモジュールにあるとは思いません。 – Lumi