プリコンパイル済みヘッダから元のファイル名(ファイルパス)とコンパイル言語を抽出できますか?私が理解しているように、llvm-bcanalyzer
(LLVMビットコードアナライザ)を使用しているClangにとって可能です。だから、誰でもGCCで私を助けることができますか?プリコンパイル済みヘッダの元のファイル名
0
A
答えて
2
clangの場合、プリプロセッサの出力を解析するだけで、元のPCHファイル名を簡単に抽出できます。 例では、header/header.h
は元のヘッダーであり、pch/pch.h.gch
はプリコンパイル済みヘッダーです。例えば
次のコマンド:clang -E -include pch/pch.h main.cpp
リターンは、我々は、元のPCHファイル名を見つけることができる場所つながる:
…
# 1 "/Users/user/pch_example/header/header.h" 1
…
# 1 "main.cpp" 2
int main() {return 42;}
残念ながら、プリプロセッサの出力を解析することで、-fpch-preprocess
オプションでそれを使用していても、GCCで私たちを助けていません。だから私が見つけた唯一の方法は、-MD (or -MMD)
のような有効な依存性追跡フラグを使ってPCHをコンパイルすることです。
たとえば、次のコマンドを呼び出すことができます。gcc-6 -MMD -x c++-header header/header.h -o pch/pch.h.pch
この場合、GCCはさらに、元のPCHファイル名へのパスを含む依存ファイルpch/pch.h.d
を生成します。
関連する問題
- 1. -g ++でプリコンパイル済みヘッダをインクルードする
- 2. デフォルトのテンプレートパラメータは、ヘッダがプリコンパイル済みヘッダーのXcode
- 3. プリコンパイル済みヘッダー
- 4. Entity Framework:Enumerable.Containsのプリコンパイル済みクエリ
- 5. プリコンパイル済みヘッダーの検出
- 6. ヘッダーファイルのプリコンパイル済みヘッダー
- 7. プリコンパイル済みヘッダーの問題?
- 8. PythonモジュールのJinjaテンプレート(プリコンパイル済みテンプレート)
- 9. Qtのベストプラクティスとプリコンパイル済みヘッダー?
- 10. Windows x64用のプリコンパイル済みSQLiteバイナリ
- 11. 1つのファイルのプリコンパイル済みヘッダーを無効にする
- 12. Visual Studioで "プリコンパイル済みヘッダーの作成"(/ Yc)と "プリコンパイル済みヘッダーの使用"(/ Yu)の違いは何ですか?
- 13. プリコンパイル済みヘッダーを再構築
- 14. サイズが巨大なC++プリコンパイル済みヘッダー
- 15. プリコンパイル済みヘッダーと編集用ヘッダーファイル
- 16. を実行し、assetsを作成します。プリコンパイル出力は、プリコンパイル済みのファイルのリストですか?
- 17. VC++ 2010プロジェクトで特定のファイルのプリコンパイル済みヘッダーを無効にする
- 18. Visual C++ LNK2019のリンク先のプリコンパイル済みヘッダーのエラー
- 19. プリコンパイル済みヘッダーの警告(短すぎるPCHファイルであることを)
- 20. clangフロントエンドのプリコンパイル済みヘッダーファイルの検索を無効にする
- 21. C++でコンパイル済みヘッダと<System.dll>
- 22. プリコンパイルされたヘッダとプリコンパイルされたバイナリの違い
- 23. Android:プリコンパイル済みのライブラリを使用しますか?
- 24. GCC +のプリコンパイル済みヘッダーでスタックトレースが正しくない
- 25. プリコンパイル済みバイナリ用のプロトコルコンパイラを正しくインストールするには?
- 26. ライブラリをプリコンパイル済みのASP.NET Webサイトにインポートする
- 27. プリコンパイル済みのヘッダーには何を入れますか? (MSVC)
- 28. Visual C++のプリコンパイル済みヘッダーに関する質問
- 29. カスタムRazorViewEngineとRazorGeneratorプリコンパイル済みビューの使用
- 30. プリコンパイル済みのWebサイトに新しいページを追加する
プリコンパイル済みのヘッダーは、おそらく多くの(継承された).hファイルを結合します。シークするのはどのような名前ですか? – kay
プリコンパイル済みヘッダーのソースである元のヘッダー名を見つけようとしました。ドキュメンテーションによると、次のコマンドを使用してPHCを作成できます。gcc -x c-header ** test.h ** -o test.h.gch私の場合、** test.h ** – vromanik
はいへのパスを抽出したいと思います。 Clangは私にその情報[Clang PHC内部メタデータ](http://clang.llvm.org/docs/PCHInternals.html#ast-file-contents)を受け取ることができます。 – vromanik