UNIX LINIUX編譯器相關

2021-09-20 19:29:43 字數 694 閱讀 8707

標準

unix程式設計環境和c程式語言標準化.標準化有多種,例如iso c制定的.

unix標準不同,同它相關的或者能夠支援的標準c庫也不完全相同.例如關鍵字,標頭檔案(及其相關的功能),系統介面/標頭檔案及定義,實用程式等等,有些標準有,有些沒有.

unix標準有多種,實現也有多種.

iso c的標頭檔案依賴於os所配置的c編譯器版本.

iso c定義的限制都是編譯時限制.檔案定義了c的限制,例如長整型最大值等等.定義了tmp_max,這是臨時檔名的最長長度.

posix也定義了不少限制,這些大多同os實現有關.例如登入名的最大長度,指向乙個檔案的連線數等等,這些限制同樣可以在中找到.

其它標準也有類似的限制.通過pathconf/sysconf/fpathconf函式可以得到某種限制.

如果編寫可移植性應用程式,那麼應用程式應該能夠滿足不同平台的要求,在編譯時刻需要支援同平台相關的選項,其實也就是不同標準/平台定義的功能測試巨集(feature test macro).

例如,如果在編譯乙個程式時,希望它只是用posix的定義而不使用任何實現定義的限制,就需要定義_posix_c_source.所有posix標頭檔案都定義此巨集,就能排除其它的定義.

_posix_c_source,_xopen_source,__stdc__(iso c的)都是feature test macro.

編譯器處理相關

一.預處理器 編譯器 彙編器 鏈結器 預處理器會處理相關的預處理指令,一般是以 開頭的指令。如 include xx.h define等。編譯器把對應的 cpp翻譯成 s檔案 組合語言 彙編器則處理 s生成對應的 o檔案 obj目標檔案 最後鏈結器把所有的 o檔案鏈結成乙個可執行檔案 exe 1.部...

編譯器相關問答

1 編譯器編譯的時候,預設到 找標頭檔案,如果不在怎麼指定編譯器到 找標頭檔案?1 如果標頭檔案用 引用,則預設到 usr include或 usr local include下找,交叉編譯器則在對應的路徑的子目錄usr include下找 2 如果標頭檔案用 引用,則先到當前目錄下找標頭檔案,如果...

ARM編譯器相關

當前的arm 編譯器在2016年就開始使用arm compiler 6。即將armcc改為armclang。compiler 6之前 dui0471 m embedded software development compiler 6 100748 0614 preface 實際工程工具鏈替代的沒有...