2015-10-29 14 views
5

このPCGの挑戦に触発された:https://codegolf.stackexchange.com/q/61836/31033 この種のツールをコンパイルするときにできるだけトレースを残そうとすれば、私は自分自身に尋ねた。何か)、ソースコードを必要とせずに、コマンドライン引数または同等のメカニズムとしてソースコードをコンパイラに渡すための方法(gcc/clangを目的としています(このような作業環境にあらかじめインストールされているコマンドラインコンパイラ) beeingは* .cファイルとして保存されます。 (コンパイル中に、コンパイラは一時ファイルが生成されますが、これらはおそらくスキャンを取得しませんofcourseの。)ファイルに保存せずにCコードをコンパイルする

+0

ウェルソースコードを書いてコンパイルした後、それを削除するスクリプトを書くことができます。 – Arc676

+0

なぜ閉鎖が広すぎるのか?ちょうど2つの答えのオプションで、かなり具体的な質問です。 1)何もできません。または2)はいgcc/clang/bothで動作します... – dhein

+0

@ Arc676:そうですが、スキャンされる可能性のあるファイル私の望ましくない振る舞いを示すトレースを残す。 – dhein

答えて

6

少なくともgcc缶標準入力からソースを読み取ることができるよう。また、ここでは、文字列のbashの建設をUnixのを使用することができます。

gcc -xc - << "int main() { exit(0); }" 

またはここで、ファイルのsh建設:

gcc -xc - <<MARK 
int main() { 
    exit(0); 
} 
MARK 

---- EDIT ----

あなたはまたに暗号を使用して想像することができますあなたのソースをエンコードし、その場でコンテンツの暗号化を解除し、gccの標準入力に結果を注入します:

uncipher myfile.protected | gcc -xc - 
関連する問題