Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219

    [C]Funzione inline errore collect2: ld returned 1 exit status

    Ho un problema ad usare le funzioni inline, se ho un codice del genere:
    codice:
    #include <stdio.h>
    inline int f(int x);  // prototipo
    ...
    inline int f(int x)
    {
        return 0;
    }
    
    int main(int argc, char **argv)
    {
        int x=f(0);
        return 0;
    }
    Mi da l' errore che ho riportato nel titolo (con gcc 4.2.1, su mac os x).

  2. #2
    Sicuro che non dica nient'altro il messaggio di errore?
    Tra l'altro, compilando il tuo codice - tolti i puntini - con gcc 4.3 non ho alcun errore; non è che il problema deriva anche dal codice che hai sostituito con i puntini?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Al posto dei puntini c'erano altre funzioni.Ma comunque se provo a togliere la chiamata a f(x) non mi da quell' errore.
    Ho risolto compilandolo da terminale, perchè io sto usando code::blocks.
    Con code::blocks però non funziona

  4. #4
    Originariamente inviato da ramy89
    Al posto dei puntini c'erano altre funzioni.Ma comunque se provo a togliere la chiamata a f(x) non mi da quell' errore.
    Probabilmente è l'effetto combinato delle due cose. Se posti il codice completo (o meglio, il classico SSCCE) vediamo di capire dove sta il problema.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Sto provando a compilare questo:
    codice:
    #include <stdlib.h>
    #include <stdio.h>
    #include <math.h>
    #include <string.h>
    #include <stdbool.h>
    
    inline int f(int x);
    
    
    inline int f(int x)
    {
        fprintf(stderr,"*\t");
        return 0;
    }
    
    int main(int argc, char **argv)
    {
        int i;
        for(i=0;i<10;i++)
            f(0);
        return 0;
    }
    E da sempre lo stesso errore.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.