2014-09-24 21 views
5

Sto provando a compilare uno dei miei eseguibili con le opzioni di profilazione. Ho aggiunto le opzioni -prof nel mio file cabal. Quando lo faccio, ricevo un messaggio che diceCome compilare le dipendenze per il profiling in una sandbox cabal

Could not find module ‘Package-X’ 
Perhaps you haven't installed the profiling libraries for package ‘package-x’? 
Use -v to see a list of the files searched for. 

Come posso fare? Ho provato cabal install --only-dependency --reinstall e ottengo la seguente risposta:

All the requested packages are already installed: 
Use --reinstall if you want to reinstall anyway. 

ho già usato --reinstall cosa devo fare? Ho anche provato cabal configure --enable-profiling-libraries ecc ...

+0

fa [questo] (http://stackoverflow.com/questions/1704421/cabal-not-installing-dependencies-when-needing-profiling-libraries) domanda risolto il problema? – bheklilr

+0

È tipo di risolverlo. 'installazione cabal --reinstall world' ha fatto qualcosa. Ma non riesco ancora a ottenere la profilazione per il mio eseguibile. Se aggiungo '-prof' nel file cabal, si lamenta che non è necessario. Se lo rimuovo '+ RTS -p' si lamenta che il file binario non è stato compilato con il supporto di profilatura ... – mb14

+0

Hai aggiunto' library-profiling: True' al tuo file '.cabal/config'? Sembrava essere il vero trucco per installare le librerie con i profili. – bheklilr

risposta

4

Il link suggerito da bheklilr ha aiutato ma non subito.

Ho finito per aggiungere library-profiling: True nel mio file .cabal/config e reinstallare tutto. cabal install --reinstall wolrd non ha funzionato, forse perché sono all'interno di una sandbox. Tuttavia, i buoni cose su sandbox è che è possibile fosso via così ho reinstallato tutto utilizzando

cabal sandbox delete 
cabal sandbox init 
cabal install 

Anche se questa soluzione ha funzionato, non è soddisfacente per le seguenti ragioni:

  • ho avuto per modificare .cabal/config che è un file globale, mentre in un wolrd ideale avrei dovuto modificare solo la mia sandbox. Tuttavia, non ho provato a creare un file di configurazione cabal locale

  • Ho dovuto reinstallare TUTTO, cioè la versione di profilazione di ogni libreria e la versione semplice, che era già installata.

+0

In base alla documentazione (https://www.haskell.org/cabal/users-guide/installing-packages.html#developing-with-sandboxes), è possibile impostare i file di configurazione locali del progetto creando un file chiamato ' cabal.config' nella stessa directory di 'cabal.sandbox.config'. Questo dovrebbe consentire di impostare l'opzione 'library-profiling: True' per la tua sandbox. – Stephan