2016-07-20 18 views
1

Ich baue ein iOS-Framework, das einige Rust-Bibliotheken verwendet. Im Moment werden die Bibliotheken zu einer statischen Bibliothek kompiliert. Damit ich den Bitcode aktivieren kann (dies wird für die Ausdünnung von Apple-Apps benötigt), müssen die Rust-Bibliotheken mit aktiviertem Bitcode erstellt werden. Ich glaube, das würde die llvm-Flagge erfordern: -fembed-bitcode. Gibt es eine Möglichkeit, dies in Cargo zu tun?Bitcode-Ausgabe in Cargo Build für iOS-Ziele aktivieren?

+0

Sie können dieses Problem für den Fortschritt der Bitcode-Unterstützung verfolgen: https://github.com/rust-lang/rust/issues/35968 – kennytm

Antwort

3

Sie können Fracht angeben, um jedes Argument, das Sie wünschen, an den Rust-Compiler zu übergeben, indem Sie setzen. Der Rustc-Compiler verfügt über das Flag -C llvm-args=val, mit dem Sie weitere Argumente an Llvm übergeben können.

in Ihrer Situation So würden Sie rufen:

RUSTFLAGS="-C llvm-args=\"-fembed-bitcode\"" cargo build 
3

Ich vermute, dass diese Angelegenheit ein binäres zu schaffen, das mit Apples Bitcode Format für iOS kompatibel ist, wird direkte Änderungen an der Rust-Compiler erfordern. Here's a recent link I found diskutieren das Problem. Der Autor dieses Repos wäre eine gute Anlaufstelle für iOS-Probleme.

Es wird mehrere technische Probleme geben, aber das grundlegendste ist das Erzeugen eines Bitcodes, der das gleiche Format hat wie iOS erwartet. Dieses Problem kann möglicherweise vorübergehend gelöst werden, indem ein benutzerdefiniertes Dienstprogramm mit dem gleichen LLVM erstellt wird, das Apple beim Klingeln verwendet.