問題タブ [bitcode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
117458 参照

c - clang を llvm IR にコンパイルする方法

バイナリ実行可能ファイルではなく、C/C++ コードを LLVM ビットコードにコンパイルするには、clang を使用します。どうすればそれを達成できますか?

また、LLVM ビットコードを持っている場合、それをバイナリ実行可能ファイルにさらにコンパイルするにはどうすればよいですか?

バイナリ実行可能ファイルにコンパイルする前に、独自のコードを LLVM ビットコードに追加したいと考えています。

0 投票する
1 に答える
7318 参照

c++ - LLVM ビットコードの生成方法

ドキュメントに書かれているように、ビットコードファイル(.bc)を生成したい:

こんにちはC

それから

コードを実行しますが、奇妙な出力があります:

何が問題ですか。うまくいかないのはなぜですか?

0 投票する
6 に答える
130647 参照

ios - ENABLE_BITCODE は xcode 7 で何をしますか?

埋め込まれたビットコード用語に問題があります。
埋め込みビットコードとは? 新しい Xcode で
いつ有効にしますか? Xcode 7 で 有効にすると、バイナリはどうなりますか?ENABLE_BITCODE
ENABLE_BITCODE

0 投票する
8 に答える
184659 参照

xcode - iOS 9 の新しい警告: 「すべてのビットコードが削除されます」

アプリの Google フレームワークに関する次の新しい警告があります。

(null): 緊急: 「/Users/myname/Library/Mobile Documents/com~apple~CloudDocs/foldername/appname/GoogleMobileAds.framework/GoogleMobileAds(GADSlot+AdEvents.o)」がビットコードなしでビルドされたため、すべてのビットコードが削除されます. ビットコードを有効にして再ビルドするか (Xcode 設定 ENABLE_BITCODE)、ベンダーから更新されたライブラリを入手するか、このターゲットのビットコードを無効にする必要があります。注: これは将来エラーになります。

Xcode 7 では、これと同じ概念について約 204 の警告が表示されますが、これを回避できませんでした。また、アプリからネットワークにアクセスする際に問題があります。これは、デバッグ エリアからのエラーです。

-canOpenURL: URL で失敗しました: "kindle://home" - エラー: "このアプリはスキーム kindle のクエリを許可されていません"

これらの問題はすべて、iOS 8 には存在しませんでした。

0 投票する
2 に答える
529 参照

swift - クローズドソース (プリコンパイル済み) の Swift ライブラリは、ヘッダーなしでどのように機能しますか?

C、C++、および Objective-C では、実行可能ファイルの一部を独自の「オブジェクト ファイル」にコンパイルし、「ヘッダー ファイル」を含めることで他のコードからそれ (および/または複数のオブジェクト ファイルを含むライブラリ) を使用できます。高度にテンプレート化された C++ コードにもかかわらず、「ヘッダー」には通常、呼び出しコードの正確性を検証するために必要な宣言のみが含まれます (また、IDE をオートコンプリートなどで支援します)。

しかし、Swift にはヘッダー ファイルがありません。

現在、明らかに Swift の静的ライブラリを作成することは現在不可能ですが、将来、Swift にヘッダーがないことを考えると、「新しい」ソース コードから既存のプリコンパイル済みコードを使用したいという上記のような状況はどのように機能するのでしょうか?

コンパイラが適切に使用されていることを確認するために、コンパイルされたフォームを十分に内省できる [私が推測する] Java がどのように機能する必要があるかのように機能しますか? 中間表現に加えてビットコードは、そのようなメタデータを保持するために必要な「プロトコル」も提供しますか?

Apple が Cocoa を Swift に移植する (そしてクローズド ソースのままにする) 場合、Swift アプリにどのように「インポート」するのでしょうか?

実際には、この質問は「クローズドソース」自体とは何の関係もありませんが、Swiftのコンパイル単位の境界を理解しようとしています。Go 言語に関する同様の質問に基づいて、ここでの私の質問は次のように言い換えることができます: ソースなしでコンパイル済みの Swift ライブラリにリンクできますか?

0 投票する
7 に答える
182265 参照

ios - Xcode ビルド オプションの影響 "ビットコードを有効にする" はい/いいえ

昨日、parse.com ライブラリに関する大量の警告を認識しました。

緊急: '[path]/Parse.framework/Parse(PFAnalytics.o)' がビットコードなしでビルドされたため、すべてのビットコードが削除されます。ビットコードを有効にして再構築するか (Xcode 設定 ENABLE_BITCODE)、ベンダーから更新されたライブラリを入手するか、このターゲットのビットコードを無効にする必要があります。注: これは将来エラーになります。

この回答でこれらの警告を削除できることは承知していますが、AppStore への提出やアプリの実際のパフォーマンスに関して悪影響があるかどうか疑問に思っています。

Xcode はビットコードについて通知します

この設定を有効にすると、ターゲットまたはプロジェクトは、それをサポートするプラットフォームおよびアーキテクチャのコンパイル中にビットコードを生成する必要があることを示します。アーカイブ ビルドの場合、リンクされたバイナリにビットコードが生成され、アプリ ストアに送信されます。他のビルドの場合、コンパイラとリンカーは、コードがビットコード生成の要件に準拠しているかどうかを確認しますが、実際のビットコードは生成しません。[ENABLE_BITCODE]

しかし、私はこのテキストから本当に有益な情報を得ることができません.

  • リンクされた回答を使用して、悪影響を与えることなく、また将来の AppStore への提出を損なうことなく問題を回避できますか?
  • ENABLE_BITCODE実際に何をしますか? 将来的には必須ではなくなりますか?
  • 有効または無効にした場合、パフォーマンスに影響はありますか?