14

最近、AppStore を通じて OS 10.9 の Xcode をバージョン 5.0.1 に更新しました。この更新により、コマンドラインツールも更新されたように見えましたgcc --version

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix

ただし、SEに関するここでの回答は、そうではなく、コマンドラインツールを個別にダウンロードしてインストールする必要があることを示しています。私はこれを行い、最終的に同じツール バージョンになりましたが、微妙な違いがあります。たとえば、現在実行中のgcc --versionプロデュース

gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix

これは、現在の Xcode コマンド ライン ツールの予想される動作を表すものですか、それとも直接ダウンロードによるインストールに特有のものですか (AppStore を介して Xcode と一緒にインストールするのではなく、可能であれば)?

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1からへの変更の意味は何/usr/include/c++/4.2.1ですか?

4

1 に答える 1

5

全体像を把握できるように、リストを使用して回答を構成します。主な質問への回答は、最後のリスト項目で終了します。

  • Mavericks 以降、デフォルトのコンパイラ スイートは GNU GCC ではなく Clang/LLVM になっています。Clang と Clang++の同義語はgcc、下位互換性を維持するために保持されています。Clang は GCC との下位互換性が非常に高いため、そうしない理由はありません。g++
  • XCode 6以降、XCodeはコマンドライン開発者ツールをメインのインストールとXCodeの.appバンドルに自動的にバンドルします。デフォルトのフレームワークとツールキットについても同様です。この時点では、完全なコマンド ライン開発はまだ完全には機能していません。XCode 開発を有効にしただけです。
  • ただし、コマンド ラインで開発を正常に行うxcode-select --installには、ターミナル アプリで実行し、指示に従う必要があります。
  • SDK がバンドルされ、XCode.app バンドル内のディレクトリ構造に編成されていることを考えると、お気づきの gxx-include-dir の変更は、/usr/include が適切な特定の場所には次のものが含まれます。

    $ls -l /usr/include

    lrwxr-xr-x 1 ルート ホイール 112 Feb 2 19:08 /usr/include -> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include /

最後のポイントは必ずしも悪いことではなく、xcode-select(1)コマンドを使用してアクティブな SDK を管理できるようになりました。これらの(非常に大きな)変更はすべて、完全かつ完全な沈黙の中で、古典的なアップルのやり方で展開されたので、これが混乱している人にとって少し明確になることを願っています.

于 2015-03-17T09:16:54.767 に答える