首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >堆栈构建失败,“未能加载”`main“接口,没有找到匹配‘`Main’的单元id”

堆栈构建失败,“未能加载”`main“接口,没有找到匹配‘`Main’的单元id”
EN

Stack Overflow用户
提问于 2018-12-31 16:55:55
回答 1查看 177关注 0票数 0

我一直试图改变一个项目,以同时提供一个库(以前它只是一个可执行文件)。

唯一的更改是(对hpack package.yaml):

代码语言:javascript
复制
+library:
+  source-dirs: src
+  exposed-modules:
+    - CYAva

但是,现在在运行stack build时,我看到了以下输出:

代码语言:javascript
复制
2018-12-31 16:32:06.406901: [warn] Failed to load interface for `Main'
2018-12-31 16:32:06.407023: [warn] no unit id matching `main' was found

hpack文件:

代码语言:javascript
复制
library:
  source-dirs: src
  exposed-modules:
    - CYAva
executable:
  source-dirs: src
  main: Main.hs
license-file: LICENSE
build-type: Simple
maintainer: Chris Stryczynski
dependencies:
- base >=4.10 && <4.12
- colour
- data-default-class
# common
- Chart-cairo
- Chart
- lens
- aeson
- bytestring
- stm
- split
- text
- time
- thyme
- binary
- binary-orphans
- old-locale
- directory
- pretty-simple
- string-conversions
- optparse-applicative
name: ceriumyankeeavocado
version: '0.1.0.0'
extra-source-files: ChangeLog.md
author: Chris Stryczynski
license: BSD3

阴谋集团档案:

代码语言:javascript
复制
cabal-version: 1.12

-- This file has been generated from package.yaml by hpack version 0.31.1.
--
-- see: https://github.com/sol/hpack
--
-- hash: d90f1b53fc8bb74ddff9cf98937222e0c38a20affcd2506880039312e549541f

name:           ceriumyankeeavocado
version:        0.1.0.0
author:         Chris Stryczynski
maintainer:     Chris Stryczynski
license:        BSD3
license-file:   LICENSE
build-type:     Simple
extra-source-files:
    ChangeLog.md

library
  exposed-modules:
      CYAva
  other-modules:
      Main
      Paths_ceriumyankeeavocado
  hs-source-dirs:
      src
  build-depends:
      Chart
    , Chart-cairo
    , aeson
    , base >=4.10 && <4.12
    , binary
    , binary-orphans
    , bytestring
    , colour
    , data-default-class
    , directory
    , lens
    , old-locale
    , optparse-applicative
    , pretty-simple
    , split
    , stm
    , string-conversions
    , text
    , thyme
    , time
  default-language: Haskell2010

executable ceriumyankeeavocado
  main-is: Main.hs
  other-modules:
      CYAva
      Paths_ceriumyankeeavocado
  hs-source-dirs:
      src
  build-depends:
      Chart
    , Chart-cairo
    , aeson
    , base >=4.10 && <4.12
    , binary
    , binary-orphans
    , bytestring
    , colour
    , data-default-class
    , directory
    , lens
    , old-locale
    , optparse-applicative
    , pretty-simple
    , split
    , stm
    , string-conversions
    , text
    , thyme
    , time
  default-language: Haskell2010

stack build

代码语言:javascript
复制
thyme-0.3.5.5: configure
thyme-0.3.5.5: build
Chart-1.9: configure
Chart-1.9: build
Chart-1.9: copy/register
Chart-cairo-1.9: configure                  
Chart-cairo-1.9: build                      
Chart-cairo-1.9: copy/register              
thyme-0.3.5.5: copy/register                
Building all executables for `ceriumyankeeavocado' once. After a successful build of all of them, only specified executables will be rebuilt.
ceriumyankeeavocado-0.1.0.0: configure (lib + exe)
Configuring ceriumyankeeavocado-0.1.0.0...
ceriumyankeeavocado-0.1.0.0: build (lib + exe)
Preprocessing executable 'ceriumyankeeavocado' for ceriumyankeeavocado-0.1.0.0..
Building executable 'ceriumyankeeavocado' for ceriumyankeeavocado-0.1.0.0..
[1 of 3] Compiling CYAva            ( src/CYAva.hs, .stack-work/dist/x86_64-linux-nix/Cabal-2.2.0.1/build/ceriumyankeeavocado/ceriumyankeeavocado-tmp/CYAva.o )
[2 of 3] Compiling Main             ( src/Main.hs, .stack-work/dist/x86_64-linux-nix/Cabal-2.2.0.1/build/ceriumyankeeavocado/ceriumyankeeavocado-tmp/Main.o )
[3 of 3] Compiling Paths_ceriumyankeeavocado ( .stack-work/dist/x86_64-linux-nix/Cabal-2.2.0.1/build/ceriumyankeeavocado/autogen/Paths_ceriumyankeeavocado.hs, .stack-work/dist/x86_64-linux-nix/Cabal-2.2.0.1/build/ceriumyankeeavocado/ceriumyankeeavocado-tmp/Paths_ceriumyankeeavocado.o )
Linking .stack-work/dist/x86_64-linux-nix/Cabal-2.2.0.1/build/ceriumyankeeavocado/ceriumyankeeavocado ...
Preprocessing library for ceriumyankeeavocado-0.1.0.0..
Building library for ceriumyankeeavocado-0.1.0.0..
[1 of 3] Compiling CYAva            ( src/CYAva.hs, .stack-work/dist/x86_64-linux-nix/Cabal-2.2.0.1/build/CYAva.o )
[2 of 3] Compiling Main             ( src/Main.hs, .stack-work/dist/x86_64-linux-nix/Cabal-2.2.0.1/build/Main.o )
Failed to load interface for `Main'      
no unit id matching `main' was found     
Completed 4 action(s).                   

--  While building package ceriumyankeeavocado-0.1.0.0 using:
      /home/chris/.stack/setup-exe-cache/x86_64-linux-nix/Cabal-simple_mPHDZzAJ_2.2.0.1_ghc-8.4.3 --builddir=.stack-work/dist/x86_64-linux-nix/Cabal-2.2.0.1 build lib:ceriumyankeeavocado exe:ceriumyankeeavocado --ghc-options " -ddump-hi -ddump-to-file -fdiagnostics-color=always"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-31 17:07:24

我的Main.hs文件中没有以下内容:

代码语言:javascript
复制
module Main where

上面的改动把它修好了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53989702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档