【发布时间】:2011-04-06 17:25:30
【问题描述】:
我正在尝试在 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 程序?
【问题讨论】:
-
首先:我假设您的 cabal 文件中有“extra-libraries: pdf”?您需要确保名称精确匹配(即与库文件相同,但没有“lib”前缀)。其次,我对 .a 文件的结果好坏参半,可能是由于我自己的无知,但对 .so 文件总是有成功的。
-
谢谢!那确实有帮助。我不知道我需要删除“lib”前缀。现在我得到一堆其他错误,但这是一个不同的故事(gcc,makefiles,g++)