2013-05-22 18 views
5

sto lavorando in OSX e sto cercando di eseguire un file marca e quando provo ottengo il seguente:ld: libreria non trovato per -lgsl

ld: library not found for -lgsl 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [harm] Error 1 

Prima ho scoperto l'avevo bisogno per ottenere la libreria GSL e ho usato le porte mac e digitato:

sudo port install gsl 

nella mia finestra riga di comando e sembrava di istallare a posto. Lgsl mancante non è configurato correttamente o non viene fornito con gsl? Ho provato googlando lgsl ma non ho ottenuto molto. Sono stato solo programmando alcuni giorni e non so se avrei dovuto impostare un percorso, o anche solo veramente come farlo.

Grazie per l'aiuto che potreste offrire.

risposta

10

Volevo solo dire che avevo il problema esatto su OSX. Anziché impostare una variabile di ambiente, ho utilizzato un flag del compilatore aggiuntivo -L/opt/local/lib, che consente di utilizzare -lgsl. Faccio riferimento alla risposta this.

+0

Questo non funziona per me. Qualcun altro ha ancora questo problema? MODIFICA: questo post ha aiutato: http://stackoverflow.com/questions/28441755/unable-to-link-gsl-library-in-mac-os-x – hlin117

+1

Dipenderà ovviamente da dove è installata la libreria gsl. .. – Mani

+0

@ hlin117 hai provato '\' gsl-config --libs \ '' durante il collegamento? – zmwang

4

È necessario aggiungere il percorso per il percorso in cui Macports ha installato la libreria gsl nella variabile di ambiente LD_LIBRARY_PATH (o molto probabilmente nell'ambiente di script di build). Credo che macports memorizzi le cose in/opt/local/lib

+0

quando si digita echo $ SENTIERI ottengo il seguente: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/local/bin:/usr/texbin Che mostra che/opt/local/lib è nei miei percorsi . Non ho mai sentito parlare di LD_LIBRARY_PATH, e non è impostato quando echo $ LD_LIBRARY_PATHS, quindi l'ho impostato con export LD_LIBRARY_PATH = "/ opt/local/lib", ma questo non risolve il problema. Non sto facendo qualcosa giusto ancora? –

+1

Aggiornamento minore: non so cosa sia esattamente LD_LIBRARY_PATH, ma ho corretto il percorso per LIBRARY_PATH in/opt/local/lib, e ho fatto in modo che le cose funzionassero senza intoppi. –

5

Ho avuto lo stesso problema e ecco come ho riparato:

export LIBRARY_PATH=/usr/local/Cellar/gsl/1.16/lib/ 

avevo precedentemente installato gsl utilizzando:

brew install gsl 
+0

Qual è la differenza tra 'LIBRARY_PATH' e' LD_LIBRARY_PATH' su mac? quando usarli? – javadba

Problemi correlati