2016-08-02 11 views
12

clangを使用しているときにコンパイル時のフラグを出力バイナリに格納する方法はありますか?実行した後に例えば出力バイナリにclangのコンパイル時フラグを格納する方法はありますか?

clang -O3 -c main.c

どこか-O3を含まなければならない結果main.oファイル。

gcc has -frecord-gcc-switchesしかし、私はclangの同等物を見つけることができません。

+2

注:Clang機能要求:https://llvm.org/bugs/show_bug.cgi?id=16291 – ecatmur

+0

ありがとうございました。そのバグに「+1」を追加しました。 – donturner

答えて

2

ecatmurは既にコメントに含意しています。この機能は現在、バグhttps://llvm.org/bugs/show_bug.cgi?id=16291に記載されているようにサポートされていません。

しかし、機能が利用できないときには、ビルドプロセスでclangの-D引数を使用してプログラム内でマクロを定義することをお勧めします。

CLANG_ARGS='-O3 -c main.c' 
clang $CLANG_ARGS -D CLANG_ARGS="\"${CLANG_ARGS}\"" 

その後、あなたのCまたはC++プログラムでは、あなたがの線に沿って何かを追加します:

const char clangArgs[] = CLANG_ARGS; 

たとえばあなたは(あなたが使用してどのようなビルドツールに調整)bashスクリプトからこれを呼び出していると仮定デバッガなどを使用して取得したり、-Vまたは--versionスイッチで呼び出されたときにプログラムからコードを出力するコードを追加することもできます。

関連する問題