C++ 編譯器(和連結器)的可移植名稱

C++ 編譯器(和連結器)的可移植名稱

cc 是 C 編譯器的 POSIX 名稱。 C++ 編譯器(和連結器)有通用名稱嗎?請注意,g++也新增了一些函式庫,在使用普通 gcc 或 ld 時不會包含這些函式庫。

答案1

POSIX C 編譯器前端是現在c99;cc廣泛可用但不能保證。 POSIX 沒有指定任何與 C++ 相關的內容,因此您在那裡找不到呼叫 C++ 編譯器和連結器的標準化命令。

常見做法(請參閱範例GNU 使) 是依賴CCCXX變數。在 GNU 的情況下,它們的預設值分別是cc和; g++BSD 傾向於使用ccand c++(參見範例OpenBSD的配置)。連結器透過編譯器驅動程式訪問,而不是明確調用。

答案2

至於 Linux,我在過去二十年中看到的大多數 Makefile 都只使用gcc/ g++。當有人費心使用真正的連結器而不是 GCC 時,他們通常會指定ld.我大概見過cc一次。

cc大多數 Linux 發行版確實提供了從到 的符號鏈接gcc,但如果您刪除 GCC 並安裝 clang,則它們不會。

不知道它是否可移植,例如 FreeBSD 最近遷移到 Clang/LVM,其他 BSD 繼續使用 GCC,Mac OS 也使用 Clang。 Android有自己的工具鏈。

我沒有使用過任何其他 Unix,所以沒有評論。

您的用例是什麼?請編輯您的問題並提供更多詳細資訊。

相關內容