-g : 生成動態共享庫而不是可執行檔案
在有了這個選項的時候,必須指定鏈結時需要的庫,編譯器不會鏈結任何預設的庫
(gcc下面對應的選項是-shared)
-i : 指定標頭檔案搜尋路徑
-kpic/-kpic :使用與位置無關的**進行編譯。
生成共享庫時使用該選項編譯原始檔。對全域性資料的每個引用都生成為全域性偏移表中
這個選項我懷疑不用的話還能算是動態鏈結庫嗎?
(gcc下面對應的選項是-fpic)
-l : 查詢共享物件的路徑
警告為了確保正確的庫鏈結順序,必須使用-mt(而不是-lthread)與libthread鏈結。
-misalign :sparc:允許記憶體中包含未對齊資料,否則會生成錯誤。如以下**所示:
char b[100];
int f(int * ar) {
return *(int *) (b +2) + *ar;
該選項通知編譯器程式中的某些資料未正確對齊。因此,非常保守的裝入和儲存必須
用於會不對齊的任何資料,即每次乙個位元組。使用該選項會顯著降低執行時效能。性
能降低的程度與應用程式有關。
–mt編譯和鏈結多執行緒**。
該選項將-d_reentrant傳遞給預處理程式,並將-lthread以正確的順序傳遞給ld。
如果應用程式或庫是多執行緒的,則必須使用-mt選項。
為了確保正確的庫鏈結順序,必須使用該選項而不是-lthread來與libthread鏈結。
如果使用的是posix執行緒,則必須使用-mt -lpthread選項來鏈結。由於對於多執行緒應
用程式,libc(相容模式)和libcrun(標準模式)需要libthread,因此必須使用-mt
選項。如果在不同的步驟進行編譯和鏈結並且使用-mt編譯,則可能會得到意外的結果。如
果使用-mt編譯乙個轉換單元,則應使用-mt編譯該程式的所有單元。
–s編譯並僅生成彙編**。
該選項使cc驅動程式編譯程式並輸出彙編原始檔,但不匯程式設計序。彙編原始檔名稱的
字尾為.s。
–verbose=v[ ,v…]
控制編譯器詳細程度。
值v必須是下列值之一。
表a–22 -verbose值
值含義[no%]diags [不]為每個編譯傳遞列印命令列。
[no%]template [不]開啟模板例項verbose模式(有時稱為「檢驗」模
式)。verbose模式顯示編譯過程中出現的每個例項階段。
[no%]version [不]指示cc驅動程式列印所呼叫程式的名稱和版本號。
%all 呼叫以上所有內容。
%none -verbose=%none與
-verbose=no%template,no%diags,no%version相同。
預設值如果未指定–verbose,則假定–verbose=%none。
Solaris 10的執行級別
solaris如何改變系統執行級別 init 系統執行級別有8種,分別為 執行級別 意義 0 進入prom狀態 ok狀態 1 管理狀態 所有檔案系統都掛上的單使用者模式,禁止其他使用者登入 2 多使用者模式 沒有網路檔案共享服務 3 多使用者模式 有網路檔案共享服務 4 未使用 5 退出作業系統並關...
solaris下的C編譯器
想簡單開發,少不了編譯器。沒辦法,上網搜尋了一下,大家都在說sun studio12,看了一下介面也挺漂亮的。雖然挺大的,安裝上去還得1g左右,還是下了下來。結果一堆得問題。首先就是,提示臨時資料夾空間不夠,剛開始沒好好看提示。還理解錯誤了。最後用.sunstudio12u1 sunos x86 p...
Solaris 10原始碼安裝編譯出錯的一種處理辦法
solaris 10原始碼安裝編譯出錯的一種處理辦法 email sery 163.com email from 幾天前,在 solaris 10 下安裝nagiso 的外掛程式nagios plus 時,在編譯 執行 make 命令是,總是不能成功,報錯資訊如下 make fatal error ...