4

まず、 DBD::mysqlパッケージをビルドしたかったのです。結果として得られたものはすべて、を使用したテストにロードできなかったため、これは失敗し続けましたSymbol not found: _is_prefix。だから私はcpanが少し古いかもしれないと思いました。私はそれがランダムな仮定であることを知っていますが、cpanは最新のBundle::CPANをインストールするように私に言いました。

DBD::mysqlまたはBundle::CPANMacOSX 10.5のいずれかを正常にインストールしたのは誰ですか?私が違ったやり方でできることをお勧めしますか?

これは、darwin-thread-multi-2level用に構築されたperl、v5.8.8です。
(4つの登録済みパッチを使用します。詳細については、perl -Vを参照してください)
/ usr / local / mysql / bin / mysql Ver 14.14 Distrib 5.1.36、
アップルの場合-readline5.1を使用したdarwin9.5.0(i386)

DBD::mysqlのCPAN出力のログは次のとおりです。

DBD::mysql用のMakefileの作成
cc -c -I / Library / Perl / 5.8.8 / darwin-thread-multi-2level / auto / DBI -I / usr / local / mysql / include -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -arch ppc -arch i386 -g -pipe- fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -Wdeclaration-after-statement -I / usr / local / include -O3 -DVERSION = \ "4.012 \" -DXS_VERSION = \ "4.012 \" " -I / System / Library / Perl / 5.8.8 / darwin-thread-multi-2level / CORE "dbdimp.c
/ usr / bin / perl -p -e "s /〜DRIVER〜/ mysql / g" /Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DBI/Driver.xst> mysql.xsi

DBD :: mysql()のMkbootstrapを実行する
chmod 644 mysql.bs
/ usr / bin / perl /System/Library/Perl/5.8.8/ExtUtils/xsubpp -typemap /System/Library/Perl/5.8.8/ExtUtils/typemap mysql.xs> mysql.xsc && mvmysql.xscmysql。 c
cp lib / DBD / mysql.pm blib / lib / DBD / mysql.pm
cp lib / DBD / mysql / GetInfo.pm blib / lib / DBD / mysql / GetInfo.pm
cp lib / DBD / mysql / INSTALL.pod blib / lib / DBD / mysql / INSTALL.pod
cp lib / Bundle / DBD / mysql.pm blib / lib / Bundle / DBD / mysql.pm
cp mysql.bs blib / arch / auto / DBD / mysql / mysql.bs
chmod 644 blib / arch / auto / DBD / mysql / mysql.bs
警告:重複する関数定義'do'がmysql.xsの225行目で検出されました
警告:mysql.xsの650行で重複する関数定義「行」が検出されました
cc -c -I / Library / Perl / 5.8.8 / darwin-thread-multi-2level / auto / DBI -I / usr / local / mysql / include -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -arch ppc -arch i386 -g -pipe- fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -Wdeclaration-after-statement -I / usr / local / include -O3 -DVERSION = \ "4.012 \" -DXS_VERSION = \ "4.012 \" " -I / System / Library / Perl / 5.8.8 / darwin-thread-multi-2level / CORE "mysql.c
dbdimp.c:関数'mysql_describe'内:
dbdimp.c:3309:警告:互換性のないポインタ型からの割り当て
dbdimp.c:関数'mysql_describe'内:
dbdimp.c:3309:警告:互換性のないポインタ型からの割り当て
rm -f blib / arch / auto / DBD / mysql / mysql.bundle
LD_RUN_PATH = "/ usr / local / mysql / lib" / usr / bin / perl myld cc -mmacosx-version-min = 10.5.7 -arch ppc -arch i386 -bundle -undefined dynamic_lookup -L / usr / local / lib dbdimp .o mysql.o -o blib / arch / auto / DBD / mysql / mysql.bundle \
       -L / usr / local / mysql / lib -lmysqlclient -lz -lm \

chmod 755 blib / arch / auto / DBD / mysql / mysql.bundle
blib / man3 / DBD::mysql.3pmのマニフェスト
blib / man3 / DBD :: mysql::INSTALL.3pmのマニフェスト
blib / man3 / Bundle :: DBD::mysql.3pmのマニフェスト
  CAPTTOFU / DBD-mysql-4.012.tar.gz
  / usr / bin / make -j3 -j3-OK

makeテストを実行しています
PERL_DL_NONLAZY = 1 / usr / bin / perl "-MExtUtils :: Command :: MM" "-e" "test_harness(0、'blib / lib'、'blib / arch')" t/*。t
t / 00base.t..................1/6ベイルアウトが呼び出されました。さらなるテストが停止しました:DBD::mysqlをロードできません

#失敗したテスト'use DBD :: mysql;'
#t/00base.tの21行目。
#「DBD::mysql」を使用しようとしました。
#エラー:モジュールDBD :: mysql:dlopen(/ Users / dlamblin / .cpan / build / DBD-mysql-4.012-4n3pv8 / blib / arch / auto / DBD / mysql / mysql.bundle、2):シンボルが見つかりません:_is_prefix
#参照元:/Users/dlamblin/.cpan/build/DBD-mysql-4.012-4n3pv8/blib/arch/auto/DBD/mysql/mysql.bundle
#期待されるもの:動的ルックアップ
#(eval 7)2行目
#コンパイルは(eval 7)行2でrequireに失敗しました。
#BEGINが失敗しました-コンパイルは(eval 7)行2で中止されました。
失敗-さらなるテストが停止しました:DBD::mysqlをロードできません
make:***[test_dynamic]エラー255
  CAPTTOFU / DBD-mysql-4.012.tar.gz
  / usr / bin / maketest-OKではありません
//ヒント//このモジュールをインストールするためのcpan-testersの結果を確認するには、次のことを試してください。
  CAPTTOFU/DBD-mysql-4.012.tar.gzを報告します
makeinstallを実行しています
  makeテストが不良ステータスを返しました。強制的にインストールしません
このコマンド中に失敗しました:
 CAPTTOFU / DBD-mysql-4.012.tar.gz:make_test NO
4

6 に答える 6

5

さて、あなたがこれらのエラーを受け取った場合、私は今、次のことを知っています:

  1. MySQL 5.1 for Mac OS X x86_64DBD::mysql(まだ)と互換性がありません。32ビットx86バージョンをインストールして、再試行してください。あなたは成功するでしょう。perl Makefile.plバナーでそれを教えてくれるといいのですが。
  2. Bundle::CPANルートとしてインストールしていなかったため、問題が発生しました。なぜそれがインストール許可の問題ではなく循環参照を報告するのか、私には理解できません。

これが古くなった情報になった場合は、コメントを追加してください。

于 2009-08-14T21:07:19.733 に答える
2

開発者のWebサイトから入手できる(ベータ)5.4.1 64ビットバージョンのmysqlをインストールすると、問題が修正されます。ユキヒョウでテスト済み。

于 2009-09-04T11:01:42.990 に答える
1

Bundle :: DBD :: mysqlをインストールしてみましたか?

于 2009-08-14T21:06:25.790 に答える
0

私はこの問題に対処していませんが、MacPortsがUNIXの非互換性の問題をすべてクリーンアップしたことがわかりました。あまりにも多くの痛みや苦しみに耐える前に、それを試してみることをお勧めします。

于 2009-08-15T05:30:21.670 に答える
0

循環依存についてどこに不平を言っていますか?互換性のないバージョンのmysqlライブラリにリンクしようとしているようです。探しているシンボルが、ロードしたライブラリにありません。これはCPAN.pmやcpanスクリプトが原因の問題ではないと思います。

いくつかの質問:

  • 誰がperlをコンパイルしましたか?これはAppleのperlですか?
  • 誰がmysqlをコンパイルしましたか?/ usr / localにあるので、それはあなた自身のバージョンですか?
  • 以前に他のバージョンをコンパイルしましたか?すべてが正しい場所を指していることを確認するために、コンパイルから始めます。
于 2009-08-15T17:39:31.270 に答える
0

Mysqlの最新のベータ64ビットバージョンをインストールすると、コンピューターに問題が修正されました。

于 2009-09-19T13:32:48.967 に答える