Khi tôi sử dụng các macro MIN_VERSION_
khác nhau của Cabal trong một dự án Haskell, làm cách nào để đảm bảo chúng được xác định chính xác khi tôi không sử dụng cabal, ví dụ: khi thử nghiệm trong GHCi?Tôi làm cách nào để sử dụng MIN_VERSION_ của cabal và các macro khác bằng ghci?
Trả lời
Ngày nay, cabal
hỗ trợ một tiểu nhóm cabal repl
, tất cả thiết lập cho bạn, vì vậy ít nhất là đối với ghci
, điều sau là không cần thiết. Tuy nhiên:
Lệnh cabal build
tạo tệp dist/build/autogen/cabal_macros.h
, chứa tất cả định nghĩa bạn cần. Để bao gồm tệp đó trong lệnh gọi ghc, bạn sẽ cần cờ -optP-include -optPdist/build/autogen/cabal_macros.h
.
Để thuận tiện, bạn có thể đặt sau đây trong một tập tin .ghci
trong thư mục dự án:
:set -optP-include -optPdist/build/autogen/cabal_macros.h
để bạn không cần phải gõ ra các tùy chọn mỗi khi bạn muốn sử dụng ghci. Tuy nhiên, hãy chú ý: các macro sẽ được xác định theo cấu hình khi bạn chạy lần cuối cabal build
và sẽ không được cập nhật khi bạn cài đặt gói mới hoặc sử dụng phiên bản GHC khác: để bạn cần phải định cấu hình lại và xây dựng lại gói.
(Cảm ơn Simon Hengel trong danh sách thư viện về sự khôn ngoan này: http://www.haskell.org/pipermail/libraries/2012-September/018491.html).
- 1. Làm cách nào để ghci xem các gói tôi đã cài đặt từ cabal?
- 2. Làm cách nào tôi có thể sử dụng GHCi với cabal 1.17 hộp cát mới?
- 3. Làm thế nào để sử dụng "cabal-dev ghci" với gói không phải hộp cát, không toàn cầu (người dùng?)?
- 4. Làm thế nào để tôi sử dụng runhaskell với cabal-dev?
- 5. Tôi làm cách nào để sử dụng JavaScript trong macro Excel?
- 6. Làm thế nào để sử dụng VIM để kết hợp sức mạnh của macro và regex
- 7. Làm thế nào tôi có thể nói với Cabal phụ thuộc để sử dụng?
- 8. Tôi làm cách nào để tạo các ống kính từ một bản ghi trong GHCi
- 9. Tôi làm cách nào để gỡ cài đặt phiên bản của gói Cabal?
- 10. Làm cách nào để sử dụng nhiều mệnh đề trong GHCi?
- 11. Làm cách nào để tải các điều khiển trong các ContentControls khác nhau của Shell bằng cách sử dụng CaliburnMicro
- 12. Làm cách nào để tải tập lệnh lên ghci?
- 13. Tôi làm cách nào để ánh xạ macro trong Clojure?
- 14. Làm cách nào để sử dụng DomainContext.Load để điền các thuộc tính của ViewModel của tôi?
- 15. Tôi làm cách nào để tạo các tệp mở bằng cách sử dụng Sublime Text 2?
- 16. Làm cách nào để biến macro thành chuỗi bằng cpp?
- 17. Làm cách nào để tôi có thể sử dụng lại các subtrees định nghĩa (AST) trong macro?
- 18. Trong Jinja2, làm cách nào tôi có thể sử dụng macro kết hợp với thẻ chặn?
- 19. Tôi làm cách nào để xử lý mã Clojurescript bắt buộc từ các macro Clojurescript?
- 20. Làm cách nào để sử dụng macro TRACE trong các dự án không phải MFC?
- 21. Tôi làm cách nào để tìm chiều rộng của hình ảnh bằng cách sử dụng PHP?
- 22. Làm cách nào để khởi động ứng dụng web của tôi bằng Backbone.Marionette và requireJs
- 23. Tôi làm cách nào để sử dụng ddply với các biến .variables khác nhau?
- 24. Tôi làm cách nào để tạo thẻ JSP tùy chỉnh sử dụng các thẻ JSP khác?
- 25. Sử dụng Python để lập trình các macro MS Office?
- 26. Làm thế nào để cung cấp các khai báo kiểu rõ ràng cho các hàm khi sử dụng GHCi?
- 27. Làm cách nào để ngăn các ứng dụng Android khác truy cập hoạt động của tôi
- 28. Làm thế nào để thay thế một Widget bằng cách sử dụng khác bằng cách sử dụng Qt?
- 29. ASP.NET MVC3: Làm cách nào để ẩn các trường bằng cách sử dụng Html.DisplayForModel và Html.EditorForModel
- 30. Làm thế nào để tạo chuỗi json của tôi bằng cách sử dụng C#?