22

残った髪の毛を抜いてしまう問題を解決してくれる人がいるのだろうか...

私は現在、Unidata データベースと対話する必要があるプロジェクトに取り組んでいます。PHP には、このタイプのデータベースにアクセスするためのネイティブ ドライバーはありませんが、Google で調べたところ、次のことがわかりました。

https://u2devzone.rocketsoftware.com/accelerate/articles/u2-pdo-driver/u2-pdo-driver .

U2 Intercall ヘッダーとライブラリがあり、それらを正しくインクルードしていると思います。ただし、拡張機能はコンパイルされますが、エラーが発生するためテストに合格しません。

pdo_u2.so: undefined symbol: ic_universe_session in Unknown on line 0

これは、ライブラリに対してリンクされていないことを示唆しています。メイクファイルを編集してライブラリを含めるように手動で指定すると、次のエラーが発生します

relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/home/kaigoh/Downloads/intcall/lib/libuvic.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [pdo_u2.la] Error 1

makefile で -fPIC スイッチを強制しようとしましたが、同じエラーが発生します。

私は自分自身を支援するためにカスタム PHP 拡張機能をコンパイルすることについて十分に知りません。正しい方向に向けてくれるグルがここにいることを願っています!

更新: これは、Linux の 32 ビット インストールを使用して完全にコンパイルされるため、64 ビット インストールで失敗する理由がわかりません...

4

2 に答える 2

2

かなり前にこの質問をしたことは知っていますが、私が思いついた最終的な解決策は、UniData からデータを読み取って処理できるいくつかの PHP クラスと共に、Rocket の .Net ライブラリを使用して C# でミドルウェアを作成することでした。

私がどのようにして PHP から UniData にアクセスしたかについて詳しく知りたい方は、お気軽にお問い合わせください。

于 2016-12-15T14:16:23.277 に答える