2014-09-24 1 views
5

Я пытаюсь скомпилировать один из моих исполняемых файлов с параметрами профилирования. Я добавил параметры -prof в свой файл cabal. Когда я это сделаю, я получаю сообщение:Как скомпилировать зависимости для профилирования в песочнице 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. 

Как это сделать? Я попытался cabal install --only-dependency --reinstall и я получаю следующий ответ:

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

Я уже использовал --reinstall что я должен делать? Я также попробовал cabal configure --enable-profiling-libraries и т. Д.

+0

ли [это] (http://stackoverflow.com/questions/1704421/cabal-not-installing-dependencies-when-needing-profiling-libraries) вопрос решить вашу проблему? – bheklilr

+0

Это своего рода решение. 'cabal install --reinstall world' что-то сделал. Но я все еще не могу получить профилирование для моего исполняемого файла. Если я добавлю '-prof' в файл cabal, он жалуется, что он не нужен. Если я удалю его '+ RTS -p', то жалуется, что двоичный файл не был скомпилирован с помощью профилирования ... – mb14

+0

Вы добавили' library-profiling: True' в свой файл '.cabal/config'? Казалось, это настоящий трюк для получения библиотек с профилированием. – bheklilr

ответ

4

link, предложенный bheklilr, помог, но не сразу.

В итоге я добавил library-profiling: True в свой файл .cabal/config и переустановил все. cabal install --reinstall wolrd не работал, может быть, потому, что я внутри песочницы. Тем не менее, хорошие вещи о песочницах, что вы можете угробить их прочь, так что я переустановил все с помощью

cabal sandbox delete 
cabal sandbox init 
cabal install 

Несмотря на это решение работало, это не является удовлетворительным по следующим причинам:

  • Я имел для изменения .cabal/config, который является глобальным файлом, тогда как в идеальном wolrd Мне пришлось бы только модифицировать мою песочницу. Тем не менее, я не пытался создать локальный конфигурационный файл cabal

  • Мне пришлось переустановить ВСЕ, то есть версию профилирования каждой библиотеки, а также обычную версию, которая уже была установлена.

+0

Согласно документации (https://www.haskell.org/cabal/users-guide/installing-packages.html#developing-with-sandboxes), вы можете настроить локальные файлы конфигурации проекта, создав файл под названием ' cabal.config' в том же каталоге, что и ваш 'cabal.sandbox.config'. Это должно позволить вам установить опцию «library-profiling: True» для вашей песочницы. – Stephan

Смежные вопросы