使用GCC 編譯時何時使用「-stdlib=libstdc」標誌
在某些情況下,明確設定「-stdlib = libstdc " 標誌在使用GCC 編譯時是必要的。情況如下:
在 Linux 上:
預設情況下,Linux 發行版使用 libstdc 作為標準 C 函式庫。此外,現代版本的 GCC 在其捆綁的 libstdc 中固有地支援 C 11。因此,要在Linux 上編譯C 11 程式碼,只需使用帶有g 的「-std=c 11」標誌就足夠了:
在Pre-Mavericks OS X 上:
歷史上,OS X 上的g 是clang 的別名。在這種情況下,Apple 的舊版 libstdc 是預設值。要利用包含C 11 支援的libc ,您必須明確指定「-stdlib=libc 」:
在Mavericks 和更高版本的OS X 上:
從OS X Mavericks 開始,libc 成為預設的C 函式庫。因此,無需使用「-stdlib=」標誌:
在OS X 上針對libstdc 進行建置:
從Xcode 10 開始,不再建置支援針對libstdc 的應用程式。針對 libstdc 編譯的現有程式碼將繼續執行,但不允許編譯新程式碼。
以上是使用 GCC 編譯時何時需要「-stdlib=libstdc」標誌?的詳細內容。更多資訊請關注PHP中文網其他相關文章!