問題タブ [llvm-clang]
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.
c++ - LLVM : C++ ソース コードにデバッグ行を挿入する
LLVM 3.1 をダウンロードし、正常にビルドしました。私の要件は、C++ ソース コード ファイルにいくつかのデバッグ行を追加することです。CLANG 3.1を使用してモジュールをコーディングしました。しかし、CLANG は、gcc が報告しない多くの AST エラーを報告します。私のコードは gcc コンパイラで問題なくコンパイルされることに注意してください。さらに、私の C++ プログラムには多くの #include ステートメントがあります。LLVM は、パスで同じものが利用可能であることを期待し、別のレベルで再び失敗します。
llvm - プログラム中のロード命令数
LLVMを介して単純な「hello world」プログラムでロード命令の総数をカウントする方法??
ios - LLVM Xcode バージョン 4.6.1 でのコンパイラ エラー (4H512)
最近 Xcode を 4.6.1 にアップグレードすると、このエラーが表示されます。このバージョンの前に完全にコンパイルできました。このメッセージへの洞察はありますか?32/64ビットの問題のようですか?
LLVM パッチ ログを見ると、これは MachO 形式の残念な制限のようです。
洞察はありますか?
objective-c - ARC を使用した Objective-C の命名規則と考えられる注意事項
純粋な ARC コーディングの経験があります。コンパイラの機能として、必要に応じて適切な保持/解放呼び出しを配置する Objctive-C メソッド ファミリを尊重します。
alloc
、mutableCopy
、で始まり、新しいオブジェクトcopy
を作成するすべてのメソッド。new
それらは保持カウントを増やします。結果として、ARC は必要がなくなったときにすべてのポインター (およびそれに関連付けられたオブジェクト) を解放します。
命名規則に従わないメソッドを記述すると、問題が発生する可能性があると思います。たとえばnewCustomer
、最初のバージョンでは自動解放されたオブジェクトを返し、2 番目のバージョンでは返さないようなメソッドを記述した場合、何が起こるでしょうか?
特に、私の質問は次のとおりです (同じ理由に属します)。
- 呼び出し元と呼び出されたコードの両方が ARC でコンパイルされている場合はどうなりますか?
- (a)呼び出しコードが ARC でコンパイルされ、呼び出しコードが非 ARC でコンパイルされるとどうなりますか?
- (b)呼び出されたコードが ARC でコンパイルされているのに、呼び出しコードが非 ARC でコンパイルされている場合はどうなりますか?
ARCが内部でどのように機能するかを示す回答をいただければ幸いです(objc_release
、objc_retainAutoreleasedReturnValue
など)。
前もって感謝します。
llvm - libclang が意味のある完了結果を返さないのはなぜですか?
libclang でコード補完を行う方法を理解しようとしています。「Thinking beyond the compiler」を見て、c-index-test を調べたところ、簡単なサンプル プログラムが見つかりました。
私はそのプログラムをコンパイルし、このサンプル ファイルで実行しました。このサンプル ファイルは、ビデオのものと似ています。
Node-> の後の最初の不完全なスペースでプログラムをポイントすると、いくつかの C キーワードが吐き出されますが、ビデオで言うように Next や Data は吐き出されません。
sumLi の後のスペースを指すと、同じ C キーワードが出力されます。sumLi に「s」が含まれる列を指定すると、sumListNode を出力できますが、それでも他のキーワードと同じ優先度値として割り当てられるため、実際にはすべてを出力するだけです。カーソルの下にあるものを読んで知的な推測をしようとする代わりに、そこに置くことができます。フラグメントの最後ではなく最初にカーソルを置くと、とにかく役立つことを期待して、ストローをつかんでいました。
libclang が提供できるデータの種類と、doxygen からの操作方法、および c-index-test をいじることから、多くのことを学びましたが、それを関連性のあるものにする方法を学んでいません。私が何かを扱うことができるようにデータ。
gcc - 共有ライブラリの作成中に Clang エラーが発生しました
MBP で共有ライブラリをコンパイルしたいのですが、こちらのアドバイスに基づいて、共有ライブラリを作成するためにclang
(から) に切り替えましたgcc
。私makefile
は:
ここで行うことは次のとおりです。 1) 、、、、のみをコンパイルしてTDS.c
、対応する 4 つのオブジェクト ファイルを作成します。2) オブジェクト ファイルをマージし、次のコマンドを使用して共有ライブラリを作成します。TDSJac.c
ExtraRoutines.c
CalcVFC.c
私はclangにまったく慣れていないので、Makefileの何が問題なのかわかりません。( に置き換えるCC=clang
とCC=gcc
、すべて正常に動作します。) インターネットで検索しましたが、うまくいきませんでした。clang のマニュアル ページには、共有ライブラリについては何も書かれていません。clangホームページからは何も取得できませんでした。この問題を回避するのを手伝っていただければ幸いです。
事前にご協力いただきありがとうございます。
llvm - 自動ツール化されたソフトウェアを LLVM ビットコードにビルドする
autotools ビルド システムを使用してソフトウェアを LLVM ビットコードにコンパイルしたいと考えています。つまり、最後に取得する実行可能ファイルを、実際のマシン コードではなく LLVM ビットコードにしたいと考えています。
(目標は、プログラム全体で LLVM ビットコード分析ツールを実行できるようにすることです。)
スクリプトCC="clang -emit-llvm -use-gold-plugins"
のバリアントを指定しようとしましたが、役に立ちませんでした。configure
常に何かがうまくいかないことがあります (たとえば、パッケージ.a
が静的ライブラリをビルドし、リンカーによって拒否されるなど)。
それを行う正しい方法は、LLVMビットコードをクロスコンパイルのターゲットにすることだと思います。で設定されますが--host=
、そのような標準的なターゲットはありません (Knuth の MMIX のターゲットはありますが)。
これまでのところ、手動でCC="clang -emit-llvm -use-gold-plugins"
リンク行をコンパイルして実行するなどのクラッジを使用してきました(llvm-ld
またはを使用)。llvm-link
これは、 などの単純なパッケージで機能しますgrep
。
.a
堅牢で、中間ファイルや中間ターゲットがある場合を含め、すべてではないにしてもほとんどの構成スクリプトで機能する方法が必要です。
ios - Clang(LLVM) フレームワークでコンパイル
私は使っている:
clang -ObjC -framework UIKit -o /var/compiled/c /Documents/Source/main.m
OS X ターミナルで。UIKit.framework も試しましたが、取得しています
致命的なエラー: 'UIKit/UIKit.h' が見つかりません
両方と。
助言がありますか?
ありがとう