3

OSXマウンテンライオンでacファイルをコンパイルしたい。Xcode 4.4 では、Preferences -> Downloads からコマンド ライン ツールをインストールできます。ただし、そのペインでは、代わりに xcrun を使用できるとアドバイスされています。

インストールする前に、ターミナル内から XCRUN ツールを使用して、Xcode アプリケーションに組み込まれたコンパイラやその他のツールを起動できることに注意してください。XCODE-SELECT ツールを使用して、アクティブな Xcode のバージョンを定義します。詳細については、ターミナル内で「man xcrun」と入力してください。

そのようにすればよかったのですが、stdio.h を見つけるのに苦労しています。

$ xcrun gcc hello.c
hello.c:1:19: error: stdio.h: No such file or directory

App Store経由でXcodeを標準インストールした後、私は間違いなくシステムにこのファイルを持っています: /Applications/Xcode.app/Contents/Developer//Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include /stdio.h

SDK を指定しようとしましたが、同じエラーが発生しました。

$ xcrun -sdk /Applications/Xcode.app/Contents/Developer//Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk gcc hello.c

いくつかのグーグルで、上記のコマンドの前に xcode-select を実行しようとしましたが、うまくいきませんでした。とにかく、Xcodeの1つのバージョンしかインストールしていません。

$ sudo xcode-select -switch /Applications/Xcode.app

ヘッダーを見つけるにはどうすればよいですか?

最終的にはあきらめてコマンドラインツールをインストールしましたが、組み込みの Xcode ツールでそれを行う方法を知っておくとよいでしょう。

注:コンパイルしようとしていたファイルは次のとおりです。

#include <stdio.h>

int main() {
    printf("hello world!\n");
    return 0;
}
4

3 に答える 3

4

コンパイラに非標準の sysroot を指定する必要があります。

clang/llvm (新しい標準) を使用すると、次のようになります。

xcrun clang --sysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/ -o hello hello.c 

gcc を使い続けたい場合は、"clang" を "gcc" に置き換えてください。

于 2012-08-19T08:45:18.327 に答える
2

おそらくこれは直接的な助けにはなりませんが、一般的に使用される xcrun コマンドにエイリアスを設定して、他のプロセスが gcc、make、gdb、git などを呼び出したときに Xcode バージョンが使用されるようにすることができます。

    alias gcc='xcrun gcc'

必要に応じてエイリアスを .bashrc ファイルに入れ、必要に応じて .bash_profile から入手できます。

これらすべての利点は、Xcode コマンド ライン ツールをインストールする必要がなく、パッケージ マネージャーを使用せずにスペースを節約し、複雑さを軽減し、これらのツールを自動的に更新する Xcode を利用できることです。

于 2012-08-26T06:18:16.087 に答える
1

10.8 を使用している場合、xcrun --sysroot を使用しても機能しませんでした。clang のドキュメントを調べると、この場合に使用するオプションは -isysroot であることがわかりました。

使用:

xcrun gcc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk

また:

xcrun clang -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk

私にとっては、次のエイリアスを作成すると便利でした:

alias xcrungcc='xcrun gcc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk'
alias xcrunclang='xcrun clang -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk'
于 2013-11-09T07:45:40.110 に答える