Rumah >pembangunan bahagian belakang >C++ >Mengapa Saya Mendapat Ralat 'Tiada Ahli Bernama signbit' Selepas Menaik taraf kepada Catalina?

Mengapa Saya Mendapat Ralat 'Tiada Ahli Bernama signbit' Selepas Menaik taraf kepada Catalina?

Barbara Streisand
Barbara Streisandasal
2024-11-16 04:12:03311semak imbas

Why Am I Getting

Ralat: Menggunakan Pengepala Tiada Ahli Bernama signbit Dalam Ruang Nama Global

Selepas menaik taraf kepada Catalina, menggunakan pengepala daripada perpustakaan mengakibatkan ralat yang menunjukkan bahawa tiada ahli bernama signbit, fpclassify dan isfinite dalam ruang nama global.

Punca:

Ralat mungkin disebabkan oleh tetapan CMAKE_OSX_SYSROOT yang salah. Di Catalina, direktori /usr/include, di mana pengepala C terletak secara tradisional, telah dibersihkan dan dilindungi oleh SIP. Ini bermakna projek yang mengharapkan untuk mencari pengepala C dalam /usr/include akan gagal untuk disusun.

Penyelesaian:

Untuk menyelesaikan isu, anda mesti menunjukkan binaan sistem ke lokasi pengepala yang betul. Berikut ialah langkah yang perlu diikuti:

  1. Sahkan bahawa Xcode adalah terkini.
  2. Gunakan -isysroot /sdk/path, dengan /sdkpath ialah output xcrun --show -sdk-path, sebagai bendera pengkompil.
  3. Dalam CMake:

    (a) Tetapkan CMAKE_OSX_SYSROOT kepada /sdk/path.

    ATAU

    (b) Tetapkan CMAKE_CXX_FLAGS dengan bendera -isysroot /sdk/path.

Tambahan Pilihan:

Jika penyelesaian di atas tidak berkesan, anda boleh cuba melumpuhkan SIP, walaupun ini tidak disyorkan. Anda boleh mendapatkan arahan tentang cara berbuat demikian dengan merujuk pautan yang disediakan dalam teks jawapan.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Tiada Ahli Bernama signbit' Selepas Menaik taraf kepada Catalina?. 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