2014-09-24 13 views
5

Tôi đang cố gắng biên dịch một trong các tệp thi hành của mình bằng các tùy chọn lược tả. Tôi đã thêm các tùy chọn -prof vào tệp cabal của mình. Khi tôi làm điều đó, tôi nhận được thông báo cho biếtCách biên dịch các phụ thuộc để lược tả trong hộp cát 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. 

Làm cách nào để làm điều đó? Tôi cố gắng cabal install --only-dependency --reinstall và tôi nhận được câu trả lời sau đây:

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

Tôi đã sử dụng --reinstall những gì tôi nên làm gì? Tôi cũng đã thử cabal configure --enable-profiling-libraries v.v ...

+0

Câu hỏi [this] (http://stackoverflow.com/questions/1704421/cabal-not-installing-dependencies-when-needing-profiling-libraries) có giải quyết được sự cố của bạn không? – bheklilr

+0

Đó là loại giải quyết nó. 'cabal install --reinstall world' đã làm điều gì đó. Nhưng tôi vẫn không thể nhận được hồ sơ để được cho thực thi của tôi. Nếu tôi thêm '-prof' vào tập tin cabal thì nó sẽ không cần thiết. Nếu tôi gỡ bỏ nó '+ RTS -p' phàn nàn nhị phân chưa được biên dịch với hỗ trợ lược tả ... – mb14

+0

Bạn đã thêm' thư viện-profiling: True' vào tập tin '.cabal/config' của bạn chưa? Điều đó dường như là thủ thuật thực sự để nhận được thư viện với hồ sơ được cài đặt. – bheklilr

Trả lời

4

Số link được đề xuất bởi bheklilr đã giúp nhưng không phải ngay lập tức.

Tôi đã kết thúc việc thêm library-profiling: True vào tệp .cabal/config và cài đặt lại mọi thứ. cabal install --reinstall wolrd không hoạt động, có thể vì tôi đang ở trong một hộp cát. Tuy nhiên, tốt điều về Hố cát là bạn có thể mương chúng đi vì vậy tôi cài đặt lại tất cả mọi thứ bằng

cabal sandbox delete 
cabal sandbox init 
cabal install 

Mặc dù giải pháp này làm việc, đó là không thỏa đáng vì những lý do sau đây:

  • tôi đã sửa đổi .cabal/config là tệp toàn cục, trong khi đó, trong một lý tưởng wolrd Tôi cần phải có để chỉ sửa đổi sandbox của tôi. Tuy nhiên, tôi không cố gắng tạo tệp cấu hình cab cục bộ

  • Tôi phải cài đặt lại mọi thứ, tức là phiên bản lược tả của từng thư viện cũng như phiên bản thuần túy đã được cài đặt.

+0

Theo tài liệu (https://www.haskell.org/cabal/users-guide/installing-packages.html#developing-with-sandboxes), bạn có thể thiết lập các tệp cấu hình dự án cục bộ bằng cách tạo một tệp có tên ' cabal.config' trong cùng thư mục với 'cabal.sandbox.config' của bạn. Điều này sẽ cho phép bạn thiết lập tùy chọn 'library-profiling: True' cho sandbox của bạn. – Stephan

Các vấn đề liên quan