【发布时间】:2016-03-16 15:38:37
【问题描述】:
我有一个非常简单的问题。
我正在尝试将存档库(称为 mylib.a)与大型 C 项目(使用 GHC 的 MinGW 副本编译)一起使用。
从我拥有的顶层:
./project.cabal
./src/...haskell..code...
./cbits/interface.c (simplifies access to `lib.a`)
./include/mylib.h
./lib/mylib.a <<<<<<<<<<<<<<< not sure where to put this or how to reference it
project.cabal 两者兼有
c-sources: cbits/interface.c
include-dirs: include
extra-lib-dirs 似乎想要一个绝对路径(目录)。
如何解决这个问题?
【问题讨论】:
-
在预编译代码中的链接并不是 cabal 的理想用例。你可以这样做,例如 intel-aes 包有几个平台的预编译代码分发为
extra-source-files然后链接那些使用来自build-type: Custom和自定义Setup.hs的阴谋钩子。 -
你能试试
extra-libraries: mylib吗?您需要将正确的路径添加到extra-{lib/incude}-dirs,如果您需要自定义链接器选项(例如),您可以使用ghc-options: -optl <linker option>。除非您使用 makefile 来构建(或其他一些非阴谋集团构建工具),否则您可能无需编写Custom构建脚本就可以逃脱。 -
是的,我最初尝试过这个。它产生通常的
* Missing C library: mylib(在configure步骤期间)