ホームページ > バックエンド開発 > PHPチュートリアル > PHP 拡張モジュールを自分で作成しました。拡張モジュールでは、別の動的ライブラリを呼び出す必要があります。これも自分で作成しました。 Linuxはどうですか?

PHP 拡張モジュールを自分で作成しました。拡張モジュールでは、別の動的ライブラリを呼び出す必要があります。これも自分で作成しました。 Linuxはどうですか?

WBOY
リリース: 2016-06-23 14:01:45
オリジナル
1210 人が閲覧しました

状況はこんな感じ
動的ライブラリはsqlite操作用とpostgresql操作用の2つを作りました。これら 2 つの動的ライブラリのインターフェイスは同じです。
別の PHP 拡張モジュールを作成し、sqlite 動的ライブラリまたは postgresql 動的ライブラリを呼び出します。
Windows ではすべて正常に動作します。リンクすると、対応するライブラリが見つかり、sqlite または postgresql が呼び出されます。
ただし、Linux では、PHP 拡張モジュールをコンパイルすると、ヘッダー ファイルのみが検出され、動的ライブラリは検出されません。コンパイルは成功しましたが、実行時にエラーが発生しました。解決方法。


ディスカッションへの返信 (解決策)

まず、ldd を実行して、拡張機能が動的ライブラリを見つけたかどうかを確認します。
動的ライブラリ検索パスを ld.so.conf に追加できる場合は

方法を見つけました。
config.m4 を変更します
PHP_ADD_LIBRARY_WITH_PATH (dbsl, /lib64, ASSETSCTL_SHARED_LIBADD)

まず、ldd を使用して拡張機能がダイナミックライブラリが見つかりました。
動的ライブラリ検索パスを ld.so.conf に追加できる場合
それを変更するには?私もこのエラーに遭遇しました!

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート