Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755

    [C] semplice programma per stampare potenze di 2

    Sono alle prime armi con il linguaggio c e sto provando a scrivere un programma che stampi le potenze di 2.
    Il codice che ho scritto è il seguente:

    codice:
    #include <math.h>
    
    main(int argc,char * argv []){
    int i;
    for(i=0;i<10;i++){
    printf("2^%d = %f",i,pow(2.0,i));
    }
    }
    utilizzando dev-c++ compilando e avviando il programma va tutto alla perfezione,ma provando ad operare da shell scrivendo il file con "joe",chiamo ad esempio il file "esempio.c"
    lo salvo e vado a compilarlo tramite il comando "gcc esempio.c" ed è a questo punto che ottengo il seguente errore:
    codice:
    /tmp/ccvLx90q.0: In function 'main':
    esempio.c: (.text+0x25): undefined reference to 'pow'
    collect2: ld returned 1 exit status
    perchè?
    come posso risolvere?

  2. #2

    Re: [C] semplice programma per stampare potenze di 2

    Originariamente inviato da zipangulu
    perchè?
    come posso risolvere?
    devi linkare la libc (generalmente è già linkata di default) ma se non la è:
    codice:
    gcc -lc esempio.c
    http://en.wikipedia.org/wiki/C_standard_library

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    nell'esempio sopra h dimenticato di scrivere
    codice:
    #include <stdio.h>
    @MacApp ho provato a fare ciò che hai detto:
    codice:
    gcc -lc esempio.c
    ma non funziona ancora...dovrei linkare magari dove è situata la libreria?

  4. #4
    Originariamente inviato da zipangulu
    ma non funziona ancora...dovrei linkare magari dove è situata la libreria?
    che versione hai?
    codice:
    $ gcc --version
    i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)
    Copyright (C) 2007 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    codice:
    gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
    Copyright (C) 2010 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    codice:
    gcc -lm esempio.c
    every day above ground is a good one

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    Originariamente inviato da YuYevon
    codice:
    gcc -lm esempio.c
    Funziona!!!mi spieghi per favore cosa hai fatto con questo "-lm"?Grazie!

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    La funzione pow() e molte funzioni matematiche non fanno parte della libreria libc.a che viene generalmente linkata di default come ricordava MacApp, ma della libm.a che deve essere linkata esplicitamente. -lm fa appunto questo, è un opzione per il linker che viene richiamato automaticamente dopo la fase di compilazione (a meno che non si specifichino opzioni aggiuntive come -c).
    every day above ground is a good one

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 © 2024 vBulletin Solutions, Inc. All rights reserved.