3

我正在尝试在 64 linux 上使用 c2hs 为 pdflib 库( pdflib.com )编写 ffi。您可以从他们的网站免费下载 pdflib(全功能评估。)

我尝试编译并运行他们的 hello.c 演示程序,它运行良好。

据我了解,我只需要 2 个文件即可使其工作:pdflib.h 和 libpdf.a

所以我把它们都放到 hello 文件夹中,写了一个 chs 文件,它编译并生成了 hs 文件。但是当我尝试编译我的 Hello.hs 程序时,阴谋集团抱怨

Cabal:缺少对外部库的依赖:* 缺少 C 库:pdflib

我尝试通过 --extra-include-dirs 和 --extra-lib-dirs 为其指定文件夹名称,但它没有帮助。

如何使用 pdflib.h 和 libpdf.a 文件编译 haskell 程序?

4

2 回答 2

2

从评论迁移到答案:

第一:我假设你在你的 cabal 文件中有“extra-libraries: pdf”?您需要确保名称完全匹配(即与库文件相同,但没有'lib' 前缀)。其次,我对 .a 文件的结果好坏参半,这可能是由于我自己的无知,但对 .so 文件总是很成功。– sclv 19 小时前

于 2011-04-07T13:47:26.800 回答
0

链接器需要能够找到您的 .a 文件。它将查看通常的 /usr/lib 路径。您可以将 pdflib 安装到常规系统位置(例如通过您的包管理器)吗?这将是最简单的路径。

于 2011-04-06T17:26:57.510 回答