Bila Menggunakan Bendera "-stdlib=libstdc " Apabila Menyusun dengan GCC
Dalam beberapa senario, secara eksplisit menetapkan "-stdlib= libstdc " bendera diperlukan apabila menyusun dengan GCC. Berikut ialah keadaannya:
Di Linux:
Secara lalai, pengedaran Linux menggunakan libstdc sebagai pustaka C standard. Selain itu, versi moden GCC sememangnya menyokong C 11 dalam libstdc yang digabungkan. Oleh itu, untuk menyusun kod C 11 pada Linux, hanya menggunakan bendera "-std=c 11" dengan g sudah memadai:
g++ -std=c++11 input.cxx -o a.out
Pada Pra-Mavericks OS X:
Secara sejarah, g pada OS X ialah alias untuk denting . Dalam konteks ini, versi lama libstdc Apple ialah lalai. Untuk memanfaatkan libc , yang termasuk sokongan C 11, anda perlu menyatakan dengan jelas "-stdlib=libc ":
g++ -std=c++11 -stdlib=libc++ input.cxx -o a.out
Pada Mavericks dan OS X Kemudian:
Bermula dengan OS X Mavericks, libc menjadi pustaka C lalai. Sehubungan itu, tidak perlu menggunakan bendera "-stdlib=":
clang++ -std=c++11 input.cxx -o a.out
Building Against libstdc pada OS X:
Dengan Xcode 10 dan seterusnya, membina aplikasi terhadap libstdc tidak lagi disokong. Kod sedia ada yang disusun terhadap libstdc akan terus berfungsi, tetapi penyusunan kod baharu tidak dibenarkan.
Atas ialah kandungan terperinci Bilakah Bendera \'-stdlib=libstdc \' Diperlukan Apabila Menyusun dengan GCC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!