良い一日!私は長い間決定を見つけようとしています。
私の問題は次のとおりです。
たとえば、2 つの .cpp ファイルがあり、そのうちの 1 つに
const std::string DICTIONARY_DEFAULT = "blah";
const std::string ADDTODICTIONARY_DEFAULT = "blah";
const std::string BUTTONS = "blah";
そして2番目のもの
static int x1;
static int NewY1, NewY2, NewX1, NewX2;
どちらのフラグメントもグローバル変数セクションにあります。グローバル静的変数 (たとえば) を出力する必要がありますが、定数は無視します。nm出力では、それらは完全に同一に見えます(すべてのケースでbタイプ、つまり初期化されていないローカルスコープシンボルを意味します)。Linux ユーティリティのみを使用して、このケースを自動的に分離する方法はありますか (grep、regexps などは完全に問題ありません)。
理解を深めるための私の課題:
C++ のプログラムがあります。主なタスクは、グローバル変数のリストを見つけて撤回することです。入力データは、多数の .cpp ファイルを含むアーカイブのように見えます。すべての .cpp ファイルは、C++ で構文的に正しいプログラムです (コンパイラ GNU C++ および Microsoft Visual C++ を使用して正常にコンパイルする必要があります)。アーカイブのすべてのファイルについて、例のように、ファイルの名前とグローバル変数のリストを個別の文字列で出力する必要があります。
出力データ:
000000.cpp ancestor ansv cost graph M N p qr query u
000001.cpp
000002.cpp
000003.cpp
000004.cpp
000005.cpp
000006.cpp
000007.cpp edge tree