4

C++ ソース コードを対応するバイナリ ファイルに追加したいのですが、elfこれを行う最善の方法を探しています。(私は自分のコードのいくつかのバージョンを使用していますが、すべてのバージョンを svn にコミットする必要はありません)。

elfbash の>>演算子を使用してファイルを破棄せずに、ソース コードを追加することはできますか? またはobjcopy --add-section、これを行う方法はありますか?

ところで、使用されているすべてのソース コード ファイルを決定するために、ソース コード ファイルからgrepすべての行を再帰的に 'ing するほうがよい考えはありますか?#include

4

2 に答える 2

2

コマンド ラインで「-E」オプションを使用すると、ほとんどの C/C++ コンパイラからプリプロセッサの出力を取得できます。

g++ -E my_file.c -o my_file_preproc.c

objcopy は簡単な賭けですが、今日ELF リソース コンパイラに出くわしました。必要なものは何でも ELF ファイルに埋め込むことができ、C/C++ コードを生成して追加できるようにします。したがって、コードがリンクできるライブラリを作成して、実行可能ファイルから直接実行可能ファイルのソースを出力することもできます。

これは別のアイデアをもたらします...前処理されたすべてのソースコードを単に含めるのではなく、使用されている方程式を出力するオプションを実行可能ファイルに提供することができます。

于 2010-01-18T21:45:42.403 に答える
1

gccを使用している場合は、-Mフラグを使用して、含まれているすべてのファイルのリストを含むファイルを取得できます。次のように、-oで指定されたファイルに書き込まれます。

gcc -M -c my_file.c -o list_of_included_files.txt
于 2009-11-30T10:04:08.487 に答える