In quale situazione è possibile che GCC per non emetta un messaggio di errore "collegamento di riferimento non definito" quando si tenta di richiamare le funzioni configurate?GCC non può lamentarsi di riferimenti non definiti?
Per esempio, una situazione in cui questo codice C viene compilato e collegato da GCC:
void function()
{
made_up_function_name();
return;
}
... anche se non è presente made_up_function_name
ovunque nel codice (non intestazioni, i file di origine, dichiarazioni, né alcuna libreria di terze parti).
Questo tipo di codice può essere accettato e compilato da GCC in determinate condizioni, senza toccare il codice effettivo? Se sì, quale?
Grazie.
MODIFICA: nessuna dichiarazione precedente o menzione a made_up_function_name
è presente altrove. Significa che uno grep -R
dell'intero filesystem sarà solo e mostrerà quell'esatta riga di codice.
Può (purché si compili C, non C++). Cosa stai cercando di realizzare? –
Non sto cercando di realizzare nulla, sta già accadendo e mi piacerebbe sapere perché è possibile. Made_up_function_name è effettivamente presente nel binario linkato finale se uso "-g" e modifica il file con un editor di testo. – STenyaK
Per quanto riguarda il motivo, vedere: 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, e probabilmente un po 'di più. –