GCCはではありませんは未定義の関数を呼び出すときに "未定義の参照"リンクエラーメッセージをスローすることができますか?例えばGCCは未定義の参照について不平を言うことはできませんか?
、このCコードはGCCでコンパイルおよびリンクされている状況:
void function()
{
made_up_function_name();
return;
}
... made_up_function_name
が存在しないにもかかわらずどこでもコード内(ないヘッダ、ソースファイル、宣言、第三者の図書館など)。
実際のコードに触れることなく、特定の条件の下でGCCによってその種のコードを受け入れ、コンパイルすることはできますか?もしそうなら、どちら?
ありがとうございました。
EDIT:made_up_function_name
への前回の宣言や言及は他にはありません。つまり、ファイルシステム全体のうちgrep -R
がの場合は、だけがその1行のコードを正確に示します。
これは(C++ではなくCをコンパイルしている限り)行うことができます。あなたは何を達成しようとしていますか? –
私は何かを達成しようとしていない、それはすでに起こっていると私はそれが可能な理由を知りたいです。 "-g"を使用し、テキストエディタでファイルを編集すると、最終的にリンクされたバイナリにmade_up_function_nameが実際に存在します。 – STenyaK
理由は、http://stackoverflow.com/questions/4914589/c-prototype-functions/4914683、http://stackoverflow.com/questions/4800102/not-including-stdlib-h-does-notを参照してください。 -produce-any-compiler-error/4800138#4800138、そして多分もっと多くのものがあります。 –