/var/log/messages

debugging with sixth sense

マクロと Gcc によるソースの生成

gcc の -E オプションと #ifdef 使ってソースコードを生成する、という面白いソレを見かけたので自分メモ。

どうも目的としては公開したくない i/f があるようで

gcc -E -P -DFUGA fuga.java.cpp 2>/dev/null >fuga.java

とか

gcc -E -P fuga.java.cpp 2>/dev/null >fuga.java

みたいな切り替えをしておいてソースの中で

#ifndef FUGA

public static final int XX = 0;

#endif

とかってしておいて云々、なカンジでした。最初見た時は java を gcc でコンパイルしとるぞ、とかってびっくりしたのですが、プリプロのみでソースを吐き出していたのですね。

Comments