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.1 和 libdl.so.1。