问题
We are trying to locate the current platform SDK used by some of our OSX machines (10.11). On those machines, only the Command Line Tools are installed, not the full blown Xcode app.
Looking up on SO, we were able to find the command xcrun --show-sdk-path
, which prints out an empty line.
On the other hand, xcrun --show-sdk-version
correctly shows 10.11
.
Is there a way to locate the path to the SDK used by our compilation tasks ?
回答1:
How about
xcode-select --print-path
The man page says:
Prints the path to the currently selected developer directory. This is useful for inspection, but scripts and other tools should use xcrun(1) to locate tool inside the active developer directory.
On a Mac with only the command line tools installed I get:
/Library/Developer/CommandLineTools
and xcrun --show-sdk-path gives me the same blank line as you get.
回答2:
This is very late, but I've only just started grappling with this.
Running on El Capitan, 10.11.6.
$ xcrun --show-sdk-version
10.11
$ xcrun --sdk macosx10.11 --show-sdk-path
<< blank line here
but
$ xcrun --sdk macosx10.12 --show-sdk-version
10.12
$ xcrun --sdk macosx10.12 --show-sdk-path
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
Just for completeness,
$ xcrun --sdk macosx10.13 --show-sdk-version
10.11
$ xcrun --sdk macosx10.13 --show-sdk-path
<< blank line here
and
$ ls -l /Library/Developer/CommandLineTools/SDKs/
total 8
drwxr-xr-x 5 root wheel 170 4 Jun 16:14 MacOSX.sdk
lrwxr-xr-x 1 root wheel 10 4 Jun 16:13 MacOSX10.12.sdk -> MacOSX.sdk
(isn't that last symlink the wrong way round?)
(no, it’s the way Apple intended, judging by Mojave)
来源:https://stackoverflow.com/questions/39772978/how-to-get-the-path-to-the-current-macosx-sdk-when-only-command-line-tools-are-i