Rumah >pembangunan bahagian belakang >C++ >Bilakah Bendera -stdlib=libstdc Diperlukan Semasa Penyusunan?

Bilakah Bendera -stdlib=libstdc Diperlukan Semasa Penyusunan?

DDD
DDDasal
2024-10-24 04:12:02640semak imbas

When is the -stdlib=libstdc   Flag Required During Compilation?

Bilakah Penyusunan Memerlukan Bendera -stdlib=libstdc?

Bendera -stdlib=libstdc mengarahkan pengkompil dan pemaut untuk menggunakan pelaksanaan perpustakaan standard libstdc semasa penyusunan. Walau bagaimanapun, tidak semestinya perlu untuk menyatakan bendera ini secara eksplisit.

Apabila Menggunakan Linux atau GCC Moden pada Platform Lain

Untuk kebanyakan pengedaran Linux dan versi GCC semasa, libstdc ialah pelaksanaan perpustakaan standard lalai. Oleh itu, menggunakan bendera -stdlib=libstdc tidak diperlukan semasa menyusun kod C 11 pada platform ini. Hanya gunakan arahan berikut:

g++ -std=c++11 input.cxx -o a.out (GNU compiler)
g++ -std=gnu++11 input.cxx -o a.out

Pada macOS Sebelum Mavericks

Pada keluaran macOS sebelum Mavericks, g ialah pautan simbolik untuk berdenting . Pelaksanaan libstdc Apple yang lebih lama adalah lalai. Untuk menggunakan libc , yang menyediakan sokongan perpustakaan C 11, bendera -stdlib=libc diperlukan:

g++ -std=c++11 -stdlib=libc++ input.cxx -o a.out (clang, not GNU compiler!)
g++ -std=gnu++11 -stdlib=libc++ input.cxx -o a.out (clang, not GNU compiler!)
clang++ -std=c++11 -stdlib=libc++ input.cxx -o a.out
clang++ -std=gnu++11 -stdlib=libc++ input.cxx -o a.out

Pada macOS Since Mavericks

Pada macOS Mavericks dan kemudiannya , libc ialah lalai. Melepasi bendera -stdlib=libstdc secara eksplisit adalah tidak diperlukan:

clang++ -std=c++11 input.cxx -o a.out
clang++ -std=gnu++11 input.cxx -o a.out

Pengecualian

Mungkin terdapat kes tertentu di mana penggunaan bendera -stdlib=libstdc secara eksplisit bermanfaat:

  • Apabila memaut dengan pustaka luaran yang memerlukan libstdc untuk keserasian
  • Apabila mengalami konflik simbol antara libstdc dan pustaka lain
  • Untuk tujuan penyahpepijatan atau penyelesaian masalah

Atas ialah kandungan terperinci Bilakah Bendera -stdlib=libstdc Diperlukan Semasa Penyusunan?. 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