ホームページ > バックエンド開発 > C++ > Catalina にアップグレードした後、「サインビットという名前のメンバーがいません」というエラーが表示されるのはなぜですか?

Catalina にアップグレードした後、「サインビットという名前のメンバーがいません」というエラーが表示されるのはなぜですか?

Barbara Streisand
リリース: 2024-11-16 04:12:03
オリジナル
310 人が閲覧しました

Why Am I Getting

エラー: の使用ヘッダーにより、グローバル名前空間にサインビットという名前のメンバーが生成されません

Catalina にアップグレードした後、 のヘッダーを使用すると、ライブラリの結果、グローバル名前空間にsignbit、fpclassify、および isfinite という名前のメンバーが存在しないことを示すエラーが発生します。

原因:

このエラーは、次の原因で発生した可能性があります。 CMAKE_OSX_SYSROOT 設定が正しくありません。 Catalina では、従来 C ヘッダーが配置されていた /usr/include ディレクトリが SIP によって削除され、保護されています。これは、/usr/include で C ヘッダーが見つかると予想されるプロジェクトはコンパイルに失敗することを意味します。

解決策:

この問題を解決するには、ビルドをポイントする必要があります。システムを正しいヘッダーの位置に移動します。従う手順は次のとおりです。

  1. Xcode が最新であることを確認します。
  2. -isysroot /sdk/path を使用します。ここで、/sdkpath は xcrun --show の出力です。 -sdk-path、コンパイラ フラグとして。
  3. CMake:

    (a) CMAKE_OSX_SYSROOT を /sdk/path に設定します。

    OR

    (b) -isysroot /sdk/path フラグを使用して CMAKE_CXX_FLAGS を設定します。

追加オプション:

上記の解決策が解決しない場合動作する場合は、SIP を無効にしてみることもできますが、これはお勧めできません。その方法については、回答テキスト内のリンクを参照してください。

以上がCatalina にアップグレードした後、「サインビットという名前のメンバーがいません」というエラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート