2017-05-17 3 views
0

Je rencontre des problèmes avec le GNU Scientific Lbrary (GSL). Après avoir intalled il, je l'ai testé avec l'exemple here et il fonctionne lors de la compilation avec:gsl undefined symbole: gsl_multifit_nlinear_trs_lmaccel

gcc -Wall -c main.cpp ; gcc -L/usr/local/lib main.o -lgsl -lgslcblas -lm -libtemt 

Ensuite, j'ai essayé de compiler that sans changement dans le code source, ni la commande compilation. Mais voici le problème, quand je tente d'exécuter le résultat, je reçois:

./a.out: symbol lookup error: ./a.out: undefined symbol: gsl_multifit nlinear_trs_lmaccel 

J'ai essayé de le commenter, mais cela rend d'autres questions. J'ai trouvé cette variable dans le doc de fulle, mais je ne peux pas trouver où elle est définie. Comme le premier exemple fonctionne, je pense que GSL a été installé avec succès, et comme la même variable est utilisée dans différents codes, je pense que c'est une variable globale, définie dans la bibliothèque.

Est-ce que quelqu'un a une idée de pourquoi je ne peux pas y accéder?

Merci beaucoup!

+0

avez-vous installé les paquets dev? – Mgetz

Répondre

0

Eh bien, après beaucoup de larmes (non, c'est une blague) je l'ai trouvé une sorte de réponse:

je copier et coller libgsl.a et libgslcblas.a dans mon répertoire, je l'ai écrit que makefile:

CC=gcc 
CXXFLAGS=-W -Wall -ansi -pedantic 
LIBS=libgsl.a libgslcblas.a -lm 
main:main.o 
    $(CC) -o main main.o $(LDFLAGS) $(LIBS) 

main.o: main.cpp 
    $(CC) -o main.o -c main.cpp $(CXXFLAGS) 

Je suis satisfait de cette réponse, même s'il y a 2 faiblesses: 1) Je ne sais pas comment utiliser la bibliothèque partagée (en ce moment) 2) Je ne sais pas comment faire par la ligne de commande

Espérons que cela aidera quelqu'un