2012-03-22 2 views
0

reçois cette erreur pour mon code:symboles non définis pour l'architecture

Undefined symbols for architecture x86_64: 
    "_spendDollars", referenced from: 
     _main in main.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

avons vérifié le code, mais ne peut pas trouver l'erreur. Le voici:

#import <Foundation/Foundation.h> 

typedef struct { 
    float exchangeRate; 
    double budget; 
    //double euroTransaction; 
    double exchangeTransaction; 
} budget; 

//budget vacationBudget; 
budget vacationBudgetEurope; 
budget vacationBudgetEngland; 

//void spendDollars (double dollars); 

//void chargeEuros (double euros); 

void spendDollars(budget* theBudget, double dollars); 
void chargeForeignCurrency(budget* theBudget, double foreignCurrency); 

int main(int argc, const char * argv[]) 
{ 

     //budget vacationBudget; 

     //vacationBudget.exchangeRate = 1.2500; 
    vacationBudgetEurope.budget = 1000; 
     //vacationBudget.budget = 1000.00; 
    vacationBudgetEurope.budget = 1000.00; 
     //double numberDollars = 100; 
    double numberDollarsInEuroland = 100; 
    double numberEuros = 100; 

    vacationBudgetEngland.exchangeRate = 1.5000; 
    vacationBudgetEngland.budget = 2000.00; 
    double numberDollarsInPoundland = 100; 
    double numberPounds = 100; 

     //vacationBudget.budget -= 100.00; 

    //spendDollars(numberDollars); 
    spendDollars(&vacationBudgetEurope, numberDollarsInEuroland); 


    //NSLog(@"Converting %.2f US dollars into euros leaves $%.2f dollars", numberDollars, vacationBudget.budget); 
    NSLog(@"Converting %.2f US dollars into euros leaves $%.2f", numberDollarsInEuroland, vacationBudgetEurope.budget); 
    //chargeEuros(numberEuros); 
    chargeForeignCurrency(&vacationBudgetEurope, numberEuros); 
    //NSLog(@"Charging %.2f euros leaves $%.2f", numberEuros, vacationBudget.budget); 
    NSLog(@"Charging %.2f euros leaves $%.2f", numberEuros, vacationBudgetEurope.budget); 
    spendDollars(&vacationBudgetEngland, numberDollarsInPoundland); 
    NSLog(@"Converting %.2f US dollars into pounds leaves $%.2f", numberDollarsInPoundland, vacationBudgetEngland.budget); 
    chargeForeignCurrency(&vacationBudgetEngland, numberPounds); 
    NSLog(@"Charging %.2f pounds leaves $%.2f", numberPounds, vacationBudgetEngland.budget); 


    return 0; 
} 

//void spendDollars (double dollars) { 
// vacationBudget.budget -= dollars; 
//} 

void chargeForeignCurrency (budget* theBudget, double foreignCurrency) { 
    theBudget -> exchangeTransaction = foreignCurrency*theBudget -> exchangeRate; 
    theBudget ->budget -= theBudget -> exchangeTransaction; 
} 
+0

Où est la définition de 'void spendDollars (budget *, double)'? –

Répondre

3

Ce message d'erreur vous indique exactement quel est le problème. Vous n'avez pas de fonction appelée spendDollars() dans votre programme. Eh bien, vous le faites, mais c'est commenté. La fonction commentée ne correspond pas à la signature que vous utilisez, il semble donc que vous ayez du code à écrire.

+0

Nettoyé le code et trouvé le problème. Merci. – pdenlinger

Questions connexes