國際語言環境指南

動態連結應用程式

Solaris 9 產品使用者可以使用動態連結或靜態連結,來選擇應用程式與系統程式庫(例如,libc )的連結方式。任何需要系統程式庫中國際化功能的應用程式必須是動態連結。如果應用程式已經靜態連結,那麼想要使用setlocale 功能將語言環境設定為任何其他不是 C 和 POSIX 的作業將會失敗。靜態連結的應用程式只能夠在 C 以及 POSIX 語言環境中作業。

依預設值,連結程式會嘗試動態連結至應用程式。如果連結程式與編譯程式的指令行選項包含 -Bstatic-dn 規格,那麼您的應用程式可能已靜態連結。您可以檢查現有的應用程式是否為使用 /usr/bin/ldd 指令完成動態連結。

例如,若是您鍵入:

% /usr/bin/ldd /sbin/sh

這個指令會表明 /sbin/sh指令不是動態連結的應用程式,如下列回應所示:

ldd: /sbin/sh: 檔案不是動態執行檔或共用物件

如果您鍵入:

% /usr/bin/ldd /usr/bin/ls

這個指令就會顯示下列訊息:

libc.so.1 => 	/usr/lib/libc.so.1

libdl.so.1 => /usr/lib/libdl.so.1

這段訊息表示 /usr/bin/ls 指令已動態連結至兩個程式庫, libc.so.1libdl.so.1