有必要指定使用GNU 標準C 函式庫(libstdc ) 作為執行時間函式庫。
編譯器是否自動使用 libstdc ?
否。根據作業系統和特定的 GCC 版本,編譯器可能預設使用不同的執行時間庫。
何時使用'-stdlib=libstdc ' 標誌
以下是一些需要使用'-stdlib=libstdc ' 標誌的場景:
在Linux 上:
雖然大多數Linux 發行版預設使用libstdc,但明確指定該標誌可以確保不同版本之間的相容性。 -
在 Mavericks 之前的 macOS 上:
在 macOS Mavericks 之前,預設執行時間庫是 Apple 的舊版本 libstdc 。要使用 libc(支援 C 11),必須使用 '-stdlib=libc ' 標誌。 -
自 Mavericks 以來的 macOS 上:
自 macOS Mavericks 以來,libc 已成為預設值和不應使用 '-stdlib=libstdc ' 標誌。 編譯指令
要在不同作業系統上使用libstdc 編譯C 11 程式碼,請使用下列指令指令:
Linux:
g -std=c 11 -stdlib=libstdc input.cxx -o a.out-
Mavericks 之前的macOS:
g -std=c 11 -stdlib=libc input.cxx -o a.out-
自Mavericks 以來的macOS:
clang -std=c 11 input.cxx -o a.out出來
以上是何時應將 \'-stdlib=libstdc \' 標誌與 GCC 一起使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!