質問

C ++プロジェクトにVS2008を使用しています。コードは非常に古く、多くの手を経てきました。使用されなくなったクラス階層、関数、列挙などがいくつかあります。

宣言または定義されているがどこにも参照されていない識別子をリストするコンパイラ/リンカーを取得する方法はありますか?

役に立ちましたか?

解決

PC-Lint" whole project"分析(複数のファイルを一緒に分析する)がこれを行うことができます。設定のサポートが必要な場合は、お気軽にご連絡ください。

他のヒント

VSは、関数内で宣言され使用されていない識別子について警告します。警告レベル4に移行する必要がある場合がありますが、グローバル変数、および他の多くの潜在的な問題のハントについては、 lint または視覚的なリント

Visual C ++についてはわかりませんが、g ++は未使用の変数について警告します。 g ++を介してコードを渡そうとする場合があります。

PC-Lint がこれを行います。ただし、すべてを1つで実行しないでください。 120万のエラーが発生しましたが、これは1行あたり最大5個に相当します。 resource.hとresource.hを参照するほぼすべてのUIクラスが、lintが「const intで定義を置き換える」と言う多くの#definesをリストするため、これは大きく押し上げられました。適切な開始点については、 Power of 2ブログのこの投稿をご覧ください。

最も明らかな未使用の宣言については、高い警告レベルが問題を処理します。

コードの未使用部分の識別に関して、デッドストリッパー(深夜犯罪ドラマの中心ではなく、リンク中に未使用コードをカリングするメカニズム)は、あなたの一部を取得するだけです-あなたが本当に欲しいのはコードカバレッジ分析ツール。たくさんありますが、残念ながらすべてがかなり高価です。

優れたコンテキストタグ付けとコールグラフ作成メカニズムを備えた堅牢なエディターも役立ちます。

Grahamの投稿を参照して:FWIW「実際に「const intで定義を置換」」を見たことはありません。 resource.hファイルを含むメッセージ-他の一部(以前は同じ場所で定義されていた)が苦痛になる場合があります。

とにかく、特定のPC-Lintメッセージが探しているものを見つけるのを妨げている場合、options.lntファイルで-eを使用してそれをオフにするのは簡単です。また、警告レベルをグローバルに設定できる-wオプションにも注意する必要があります(たとえば、-w0 + e766はメッセージ766を除くすべてをオフにします)。

未使用のシンボルおよび宣言については、755(情報-グローバルマクロは参照されません)、758(情報-グローバル列挙は参照されません)、769(情報-グローバル列挙定数)などのメッセージを探してください。参照されない)および1714(情報-参照されないメンバー関数)。これらは単一ファイル分析では抑制されているため、プロジェクト分析全体を実行して表示する必要があることに注意してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top