<p>Someone mentioned something to me on the Cardano discord that I needed my <code>cabal.project</code> file.  I guess for some reason using <code>cabal init</code> doesn't put it in there?  Anyway, after I put that file in there and configured it everything built properly.</p>

CC BY-SA 4.0
2023-08-26T03:51:56.273Z
Yes, you will need a `cabal.project` file.
Erik de Castro Lopo
CC BY-SA 4.0
2023-08-26T00:09:12.180Z
2023-08-26T00:09:12.180Z
mrsargent
<p>I have completed the pioneer program and am writing my own app.  I've created my react front end and now am trying to serialize my smart contract in <code>Haskell</code> for a minting policy I wrote.  The problem I am having is I believe I am unable to get the Plutus library installed correctly.  I did a <code>cabal update</code> then <code>cabal init</code> to get cabal in my program.  I then pretty much copied the cabal configuration from Week05 in the pioneer program with some slight modifications in to my project. See below</p>
<pre><code>cabal-version:      2.4
name:               
version:            0.1.0.0
synopsis:           
license:            Apache-2.0
build-type:         Simple

extra-source-files:
   CHANGELOG.md
   README.md

common common-all
    build-depends:    base ^&gt;=4.14.3.0
                , aeson
                , bytestring
                , containers
                , cardano-api
                , data-default
                , plutus-ledger-api
                , plutus-tx-plugin
                , plutus-tx
                , text
                , serialise
                , utilities
default-language: Haskell2010
ghc-options: -Wall -fobject-code -fno-ignore-interface-pragmas
             -fno-omit-interface-pragmas -fno-strictness 
             -fno-spec-constr -fno-specialise -fexpose-all-unfoldings
             -fplugin-opt PlutusTx.Plugin:defer-errors



library 
import:             common-all
hs-source-dirs:     app
exposed-modules:    TC_Contract
</code></pre>
<p>I have an <code>app</code> folder where I have <code>TC_Contract.hs</code> so I belivee I have everything I need setup correctly in the cabal configuration.</p>
<p>when I try to use the <code>cabal repl</code> command I get
<a href="https://i.sstatic.net/iLvaz.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/iLvaz.png" alt="enter image description here" /></a></p>
<p>The error says it cannot find <code>plutus-ledger-api</code> which is in the cabal file.  If I comment out <code>plutus-ledger-api</code> then it does to the next one on the list of <code>build-depends</code>.  It is like I am missing a reference to something but I don't know where.  I think I am missing some information on how I actually get Plutus in my project.  I've built a cabal file for a standard haskell program without a problem and the cabal files in the pioneer program were already complete.  Confused on what to do.  Does anyone have any ideas?  Thanks.</p>
<p>Oh also as I note I copied the Utilities folder into my dapp from the pioneer program code as there was a lot of useful functions in there.  It is strange that file had its own cabal file as well.  Not sure if that is creating a problem as well.</p>

<plutus-pioneer-program><haskell><cabal>
Cabal - could not resolve dependencies error
# Cabal - could not resolve dependencies error

(Asked by: username_0 on 2023-08-25)

I have completed the pioneer program and am writing my own app.  I've created my react front end and now am trying to serialize my smart contract in Haskell for a minting policy I wrote.  The problem I am having is I believe I am unable to get the Plutus library installed correctly.  I did a cabal update then cabal init to get cabal in my program.  I then pretty much copied the cabal configuration from Week05 in the pioneer program with some slight modifications in to my project. See below
cabal-version:      2.4
name:               
version:            0.1.0.0
synopsis:           
license:            Apache-2.0
build-type:         Simple

extra-source-files:
   CHANGELOG.md
   README.md

common common-all
    build-depends:    base ^>=4.14.3.0
                , aeson
                , bytestring
                , containers
                , cardano-api
                , data-default
                , plutus-ledger-api
                , plutus-tx-plugin
                , plutus-tx
                , text
                , serialise
                , utilities
default-language: Haskell2010
ghc-options: -Wall -fobject-code -fno-ignore-interface-pragmas
             -fno-omit-interface-pragmas -fno-strictness 
             -fno-spec-constr -fno-specialise -fexpose-all-unfoldings
             -fplugin-opt PlutusTx.Plugin:defer-errors



library 
import:             common-all
hs-source-dirs:     app
exposed-modules:    TC_Contract

I have an app folder where I have TC_Contract.hs so I belivee I have everything I need setup correctly in the cabal configuration.
when I try to use the cabal repl command I get

The error says it cannot find plutus-ledger-api which is in the cabal file.  If I comment out plutus-ledger-api then it does to the next one on the list of build-depends.  It is like I am missing a reference to something but I don't know where.  I think I am missing some information on how I actually get Plutus in my project.  I've built a cabal file for a standard haskell program without a problem and the cabal files in the pioneer program were already complete.  Confused on what to do.  Does anyone have any ideas?  Thanks.
Oh also as I note I copied the Utilities folder into my dapp from the pioneer program code as there was a lot of useful functions in there.  It is strange that file had its own cabal file as well.  Not sure if that is creating a problem as well.

**Tags:** plutus-pioneer-program, haskell, cabal

---

## 1 answers

### Answer by username_0 on 2023-08-26. Score: 2

Someone mentioned something to me on the Cardano discord that I needed my `cabal.project` file. I guess for some reason using `cabal init` doesn't put it in there? Anyway, after I put that file in there and configured it everything built properly.

> **Comments:**
> **username_1**: Yes, you will need a `cabal.project` file.  

---

