私は、複数の共有ライブラリと実行可能ファイルをビルドするプロジェクトを構築しています。これらのバイナリのビルドに使用されるすべてのソースファイルは、単一の/ srcディレクトリにあります。だから、どのバイナリをビルドするためにどのソースファイルが使われたのかは分かりません(多対多の関係があります)。バイナリを構築するために使用された* .cと* .hファイルを見つける方法?
私の目標は、各バイナリのCファイルのセットを解析し、正しい関数だけが呼び出されるようにするスクリプトを作成することです。
1つのオプションは、この情報をMakefileから抽出することです。しかし、これは、生成されたファイルとヘッダー(インクルードに依存するため)でうまく機能しません。
また、コールグラフを参照するだけでも、関数ポインタを使用して多くの関数が呼び出されるため、複雑になることがあります。
他のアイデアはありますか?
ちょっと好奇心から:これはなぜあなたが試していますか? – stefan
ディストリビューションパッケージのメカニズムは、すべての依存関係を知っています... –
"適切な機能と呼ばれる"という意味の正確な定義はありますか?それは明らかではなく、単純ではありません。 –