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

Bilakah Bendera -stdlib=libstdc Diperlukan Semasa Penyusunan?

DDD
Lepaskan: 2024-10-24 04:12:02
asal
607 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan