C++コンパイラがどのシンボルを定義または未定義にするかを正確に決定する方法を見つけるのに少し苦労しています。つまり、変数/関数が定義済みまたは未定義のシンボルにコンパイルされるかどうかを、C++ ソース コードでどのように知ることができるかということです。最初に、定義された変数/関数はすべて定義されたシンボルになると思っていましたが、そうではないようです。static、extern、inlineなどのキーワードも考慮して、これを正確に判断する方法はありますか?
*update 問題は、C++ での定義と宣言に関するものではなく、私のコードがコンパイルされるかどうかでもありません。現在、C++ ソースでのみ宣言されている一部の関数/変数は、コードをコンパイルして nm でオブジェクト ファイルを調べると、定義済みのシンボルになると思います。この情報が必要です: 定義済み/宣言済みの C++ 関数/変数は、オブジェクト ファイル (ELF など) に定義済み/未定義のシンボルにコンパイルする方法を教えてください。