2010-09-07 6 views
0

Je dois compiler un fichier .c fourni avec une boîte à outils matlab.Je n'arrive pas à faire fonctionner gcc

A cette fin, je téléchargé Xcode 3.1.4, et maintenant je suis en train de commandes comme

gcc -o solvemc solvemc.c 

et obtenir des erreurs comme

Undefined symbols: 
    "_N_VFree", referenced from: 
     _main in cca0ChgX.o 
     _main in cca0ChgX.o 
     _main in cca0ChgX.o 
     _main in cca0ChgX.o 
     _main in cca0ChgX.o 
     _main in cca0ChgX.o 
    "_CVDiag", referenced from: 
     _integrate in cca0ChgX.o 
     _docollapse in cca0ChgX.o 
     _mcwfalg in cca0ChgX.o 
    "_CVode1", referenced from: 
     _integrate in cca0ChgX.o 
     _docollapse in cca0ChgX.o 
     _mcwfalg in cca0ChgX.o 
     _mcwfalg in cca0ChgX.o 
    "_setall", referenced from: 
     _main in cca0ChgX.o 
    "_CVodeFree", referenced from: 
     _integrate in cca0ChgX.o 
     _docollapse in cca0ChgX.o 
     _mcwfalg in cca0ChgX.o 
    "_genunf", referenced from: 
     _docollapse in cca0ChgX.o 
     _mcwfalg in cca0ChgX.o 
     _mcwfalg in cca0ChgX.o 
     _mcwfalg in cca0ChgX.o 
    "_CVodeMalloc", referenced from: 
     _integrate in cca0ChgX.o 
     _docollapse in cca0ChgX.o 
     _mcwfalg in cca0ChgX.o 
    "_N_VNew", referenced from: 
     _mcwfalg in cca0ChgX.o 
     _main in cca0ChgX.o 
     _main in cca0ChgX.o 
     _main in cca0ChgX.o 
     _main in cca0ChgX.o 
     _main in cca0ChgX.o 
     _main in cca0ChgX.o 
     _main in cca0ChgX.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 

Répondre

1

Vous avez probablement besoin de créer un lien dans la bibliothèque de mathématiques. Ajoutez un -lm à votre ligne gcc.

+0

cela peut être vrai ... mais l'ajout de -lm en lui-même ne le résout pas, et je ne suis pas sûr comment télécharger/trouver les bibliothèques dont j'ai besoin – atp

+1

Regardez les inclusions dans le fichier .c. Ils vous mèneront généralement à quelles bibliothèques il utilise. – jkoelker

2

Il semble qu'il vous manque une ou plusieurs bibliothèques - vérifiez dans les documents Matlab quelles bibliothèques sont requises pour compiler votre code.

2

Il vous manque des bibliothèques. Regardez les bibliothèques que votre code utilise et ajoutez des paramètres de lien à votre ligne gcc: -l<libname>. Vous devrez peut-être ajouter des chemins aussi: -L/path/to/libdir.

Questions connexes