2014-10-30 19 views
7

Tôi có một số lỗi cabal sau khi giàn giáo dự án haskell của tôi bằng cách sử dụng holy-project.xây dựng cabal --ghc-options = "- fforce-recomp -Wall -fno-code" không thành công

Tôi không nghĩ rằng sự cố liên quan đến plugin đó (có vẻ giống như câu hỏi cabal chung hơn) vì tôi có thể tạo lại nó bắt đầu từ tiêu chuẩn cabal init. Tôi sẽ ngạc nhiên nếu vấn đề có liên quan đến SublimeHaskell hoặc như nhiều người dường như đang sử dụng nó.

Dưới đây là file cabal được tạo ra (tôi đơn giản hóa/rút ngắn nó một chút):

(các thánh dự án tạo ra một số tập tin ví dụ nguồn cùng)

name:     test-holy 
version:    0.1.0.0 
build-type:    Simple 
cabal-version:   >=1.10 

library 
    exposed-modules:  TestHoly 
         , TestHoly.Swallow 
         , TestHoly.Coconut 
    build-depends:  base >=4.7 && <4.8 
    ghc-options:   -Wall 
    hs-source-dirs:  src 
    default-language:  Haskell2010 

cabal build làm việc

Lệnh sau không hoạt động:

$ cabal clean && cabal configure && cabal build --ghc-options="-fforce-recomp -Wall -fno-code" 

cleaning... 
Resolving dependencies... 
Configuring test-non-holy2-0.1.0.0... 
Building test-non-holy2-0.1.0.0... 
Preprocessing library test-non-holy2-0.1.0.0... 
[1 of 3] Compiling TestHoly.Coconut (src/TestHoly/Coconut.hs, nothing) 
[2 of 3] Compiling TestHoly.Swallow (src/TestHoly/Swallow.hs, nothing) 
[3 of 3] Compiling TestHoly   (src/TestHoly.hs, nothing) 
[1 of 3] Compiling TestHoly.Coconut (src/TestHoly/Coconut.hs, nothing) 
[2 of 3] Compiling TestHoly.Swallow (src/TestHoly/Swallow.hs, nothing) 
[3 of 3] Compiling TestHoly   (src/TestHoly.hs, nothing) 
ar: dist/build/TestHoly.o: No such file or directory 
ar: dist/build/TestHoly/Swallow.o: No such file or directory 
ar: dist/build/TestHoly/Coconut.o: No such file or directory 

Từ những gì tôi hiểu, do cờ -fno-code (Bỏ qua việc tạo mã), không có tệp đối tượng nào được tạo ra do đó trình liên kết không thành công. Điều đó có được mong đợi không? Hoặc nên liên kết không được gọi?

Tại sao tôi chạy lệnh cabal đó?

Như tôi đã nói ở trên: Tôi đang sử dụng SublimeText để chỉnh sửa dự án của mình. Nó không thành công về dự án-thánh tạo ra tập tin cabal với thông báo sau:

Build FAILED 

REMAINING STDERR: 

Warning: the following files would be used as linker inputs, but linking is not being done: dist/build/TestHoly.dyn_o dist/build/TestHoly/Swallow.dyn_o dist/build/TestHoly/Coconut.dyn_o 
ghc: no input files 
Usage: For basic information, try the `--help' option. 

Qua các cuộc thảo luận trên SublimeHaskell#158 Tôi làm theo các gợi ý bởi NH2 để chạy lệnh cabal này trực tiếp (bởi vì nó là một trong những sử dụng bởi SublimeHaskell).

Tôi rất cảm kích nếu ai đó có thể làm sáng tỏ điều này!

Version info

$ cabal --version 
cabal-install version 1.18.0.5 
using version 1.18.1.4 of the Cabal library 

$ ghc --version 
The Glorious Glasgow Haskell Compilation System, version 7.8.3 

$ system_profiler SPSoftwareDataType 
Software: 

    System Software Overview: 

     System Version: OS X 10.10 (14A389) 
     Kernel Version: Darwin 14.0.0 
+0

nào nó hoạt động nếu bạn vượt qua 'cờ -c' để GHC? –

+1

'cabal build --ghc-options =" ​​- c -fforce-recomp -Wall -fno-code "' đưa ra cùng một vấn đề. Tôi đã kiểm tra bằng cách truyền '--verbose' cho cabal và lá cờ đang được truyền trong lệnh ghc:'/usr/bin/ghc --make -fbuilding-cabal-package ... -Wall -c -fforce-recomp - Wall -fno-code' – dvekeman

+0

Bạn có thể thử thêm '-fwrite-interface' không? –

Trả lời

0

Đây là một vấn đề được biết đến trong cabal.

Xem https://github.com/haskell/cabal/issues/1176

Nếu bạn không vượt qua -fforce-recomp bạn có thể là ok để kiểm tra gia tăng và chỉ nhấn báo lỗi khi bạn cần phải làm một xây dựng sạch.

Nhưng vắng mặt đó, cabal chỉ không biết phải làm gì khi GHC không thực sự biên dịch điều ...

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