Ich habe eine objc_library-Regel, die mir sagt, dass es keinen SDK-Framework-Header finden kann (dieses Problem ist nicht spezifisch für IOKit, ich kann überhaupt keine Frameworks finden).Wo sucht Bazel nach OSX SDKs (und was ist zu tun, wenn es nicht gefunden wird)?
#import <IOKit/IOKitLib.h>
fatale Fehler: 'IOKit/IOKitLib.h' Datei nicht
finde ich schon "IOKit" habe in meinem sdk_frameworks. Wenn ich einen Blick in /System/Library/Frameworks/IOKit.framework nehme, finde ich, dass es keine Verzeichnis-Header gibt, die diese Datei enthalten würden. Vielleicht ist es keine Überraschung, wenn Bazel dort hinschaut.
Wenn ich etwas härter aussehe, finde ich mehr Ergebnisse für das SDK.
Ich würde denken, dass dies die eine ist, die ich will, da ich für MacOSX entwickle.
/Applications/Xcode.app//Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/IOKit.framework
Kann ich Bazel sagen, dieses SDK zu verwenden? Sollte ich müssen? Wie kann ich herausfinden, wo Bazel nach diesen Dingen sucht? Ich bin ziemlich vertraut mit der Verwendung von Bazel, aber ich bin mir nicht sicher, wie man debuggt, wenn die grundlegendsten Dinge versagen.
Hier ist das einfachste Beispiel, das fehlschlägt.
BUILD:
objc_library(
name = "test",
srcs = ["test.cpp"],
copts = ["-ObjC++"],
sdk_frameworks = ["IOKit"],
)
// test.cpp
#import <IOKit/IOKitLib.h>
ich gepostet auf bazel-diskutieren, aber es ist nicht viel Traktion zu bekommen. Ich benutze Bazel 0.5.2. https://groups.google.com/forum/#!topic/bazel-discuss/HhAjKblwHwk