ホームページ  >  記事  >  システムチュートリアル  >  Centos のダイナミック リンク ライブラリの共同コンパイル技術の詳細な分析

Centos のダイナミック リンク ライブラリの共同コンパイル技術の詳細な分析

WBOY
WBOY転載
2024-01-10 13:26:391244ブラウズ

ダイナミック リンク ライブラリとは

Windows ではダイナミック リンク ライブラリ (DLL)、サフィックスですか? xxx.dll

UNIX または Linux では、これは共有ライブラリであり、サフィックスは xxx.so

です。

ファイルを .so 形式のダイナミック リンク ライブラリにコンパイルします

gcc -o libme.so wso.c -shared

wso.c を libme.so にコンパイルします。ライブラリ名は me です。

lib はプレフィックスとサフィックスです

共同コンピレーション

gcc -L /root/myc/ -l me ws.c -o newws

-L ダイナミックリンクライブラリのフォルダの場所

-l ダイナミック リンク ライブラリのライブラリ名 (最初のライブラリを削除し、.so はライブラリ名です)

次に、コンパイルは成功しましたが、操作はまだ失敗していることがわかります

失敗の理由は、オペレーティング システムがそれを見つけられないことです

実際、Linux には Windows と同様に、system32 のようなシステム ライブラリ フォルダーがあります。さまざまなパブリック クラス ライブラリがここに配置されます

CentOS には、Windows によく似たパブリック ライブラリを保存する 2 つのフォルダーがあります

/lib カーネル レベル

/usr/lib ユーザーシステムレベル

/usr/lib64/ 64 ビット システムでのみ利用可能

良いライブラリを作らなければなりません、適当に置いても構いません

######解決### ###

作成したSOファイルを公開ライブラリにコピー(cpコマンド) 次に ldconfig を実行します (動的ライブラリがキャッシュされます。新しいものが追加された場合は、再度キャッシュを更新する必要があります)

newws が正常に実行されました

以上がCentos のダイナミック リンク ライブラリの共同コンパイル技術の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。