2017-10-24 1 views
3

私はC++プログラムで使用されている関数my_funcを持っています。私はどこからインポートされたのか分かっていたと思っていましたが、ソースファイルの機能を変更しても、C++プログラムの実行時の変更は発生しませんでした。これはおそらく、関数が私が知らない他の場所からインポートされている可能性があると考えるようになります。 my_funcがどこからインポートされているかを知ることは可能でしょうか?C++プログラムの特定の関数がどこからインポートされているかを調べるには?

+1

デバッガを使用して、それに入ります。 –

+0

この種の動作には多くの理由があります。関数名の入力ミス、間違った名前空間など。コードにブレークポイントを設定してデバッグします。 – Yann

+0

この関数の名前は 'my_func'ですか? – user4581301

答えて

0

最も簡単な方法は、配信するものをリンクしないことです。これは、見つからない項目についてのコンパイラ診断と、ファイルのいくつかのアイデア(とそれが必要とされる機能)を与えるでしょう。

0

1/relunctant関数のソースファイルは、同じ実行可能ファイルの一部ですか、またはdllの一部ですか? dllの場合、非常に一般的なエラーは問題なくコンパイルしてリンクすることですが、dllが使用されているため、ファイルの実際のコピーは機能しません。または、別のモードでコンパイルしてリンクしています(vs debug、32 vs 64 ...のリリース)。

2/grep &のような基本的なツールは、linuxの下のあなたの友人を見つける: 見つける。 -name '* .hpp' -print0 |これは、Visual Studioで分

3 /以上を服用してはいけません

でもコードの非常に大きなベース(行以上の2Millions)に、あなたが検索を絞り込むことができますxargsの-0 grepを-n「my_func」インクルードヘッダーの場合は、/ showIncludesオプションを使用してcppファイル用にリストします。すべてのインクルードヘッダーが再帰的にリストされます。あなたのmy_funcは、それらのヘッダの1つで確実に宣言されなければなりません。

関連する問題