Ubuntu Cabal 构建未定义的引用 z3 错误

Ubuntu Cabal build undefined reference z3 error

提问人:DJA 提问时间:11/12/2023 更新时间:11/12/2023 访问量:27

问:

我刚刚安装了 Ubuntu 22.04.3 LTS,我正在尝试运行这个 haskell 项目,我不需要实际编辑它,但我需要运行它才能在大学使用它。

我按照自述文件中指定的步骤进行操作:

$ apt-get install -y ghc cabal-install git gettext locales

$ wget https://github.com/Z3Prover/z3/releases/download/z3-4.6.0/z3-4.6.0-x64-ubuntu-16.04.zip
$ unzip z3-4.6.0-x64-ubuntu-16.04.zip 
$ cp z3-4.6.0-x64-ubuntu-16.04/bin/libz3.so /usr/lib/ 
$ cp z3-4.6.0-x64-ubuntu-16.04/bin/z3 /usr/bin/ 
$ cp z3-4.6.0-x64-ubuntu-16.04/include/* /usr/include/
$ git clone https://gitlab.fing.edu.uy/matefun/MateFun.git

$ cd MateFun/
$ cabal update
$ cabal install happy
$ cabal install hgettext

我在尝试时遇到了问题,因为$ cabal install z3

cabal: Cannot build the executables in the package z3 because none of the
components are available to build: the executable 'examples' is marked as
'buildable: False'

我通过这样做来克服这个问题。cabal install z3 --lib

但后来我试着去做,这就是我被卡住的地方cabal build

(...)
[14 of 14] Compiling Main  
error: undefined reference to 'Z3_optimize_assert_and_track'
error: undefined reference to 'Z3_optimize_get_unsat_core'

一直在试图找出问题可能是什么,尝试添加但 id 没有区别。--extra-lib-dirs=/usr/bin/ --extra-include-dirs=/usr/include/

关于如何让它工作的任何想法?我在这里尝试,但这真的不是我的强项

Ubuntu Haskell z3 阴谋集团

评论

0赞 leftaroundabout 11/13/2023
本教程建议的事实是一个危险信号。基本上您永远不应该手动安装软件包。要么 Cabal 自己发现这个包是需要作为一个依赖项的,并自动安装它,否则你也无济于事,你已经安装了它。cabal install z3
1赞 leftaroundabout 11/13/2023
另一方面,为什么要手动安装 z3 证明器?我至少会先试一试,如果这不起作用,请寻找 ppa,并且只有在其他不起作用的情况下才开始手动放入内容。sudo apt install libz3-dev/usr
0赞 DJA 11/17/2023
谢谢大家! 删除我手动添加的内容后,似乎工作正常!我不确定我是否可以将评论标记为正确答案?sudo apt install libz3-dev

答: 暂无答案