Rumah >pembangunan bahagian belakang >C++ >Bila hendak Menentukan \'-stdlib=libstdc \' apabila Menyusun dengan GCC?

Bila hendak Menentukan \'-stdlib=libstdc \' apabila Menyusun dengan GCC?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-24 02:20:02543semak imbas

When to Specify

Bila Menggunakan -stdlib=libstdc

Apabila menyusun dengan gcc, bendera -stdlib=libstdc menentukan pustaka standard C untuk digunakan. Dalam kebanyakan kes, pengkompil akan secara automatik menggunakan libstdc , pustaka GNU C, sebagai lalai. Walau bagaimanapun, terdapat keadaan yang mungkin perlu untuk menyatakan secara eksplisit -stdlib=libstdc .

Kelakuan Khusus Pengkompil

Di Linux, semua pengedaran utama menggunakan libstdc sebagai pustaka C lalai, dan versi GCC terkini menyokong C 11 secara lalai. Untuk menyusun kod C 11, anda boleh menggunakan sama ada:

  • g -std=c 11 input.cxx -o a.out
  • g -std=gnu 11 input.cxx - o a.out

Pada OS X sebelum Mavericks, g ialah alias untuk clang , dan libstdc Apple yang lebih lama ialah lalai. Untuk menggunakan libc , yang termasuk sokongan perpustakaan C 11, pass -stdlib=libc . Pilihan kompilasi termasuk:

  • g -std=c 11 -stdlib=libc input.cxx -o a.out
  • g -std=gnu 11 -stdlib=libc input.cxx -o a.out
  • clang -std=c 11 -stdlib=libc input.cxx -o a.out
  • clang -std=gnu 11 -stdlib=libc input.cxx -o a.out

OS X Mavericks dan Kemudian

Sejak OS X Mavericks, libc telah menjadi pustaka C lalai. Anda harus mengelak daripada menggunakan bendera -stdlib= dalam kes ini. Terutama, Xcode 10 dan kemudian tidak lagi menyokong kompilasi terhadap libstdc .

Pilihan Penyusunan Disyorkan

  • Linux: Gunakan g -std=c 11 input.cxx - o a.out atau g -std=gnu 11 input.cxx -o a.out
  • OS X (sebelum Mavericks): Gunakan g -std=c 11 -stdlib=libc input.cxx -o a. keluar atau clang -std=c 11 -stdlib=libc input.cxx -o a.out
  • OS X (Mavericks dan kemudian): Gunakan clang -std=c 11 input.cxx -o a.out atau clang -std=gnu 11 input.cxx -o a.out

Atas ialah kandungan terperinci Bila hendak Menentukan \'-stdlib=libstdc \' apabila Menyusun dengan GCC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn