我正在尝试使用64 linux上的c2hs为pdflib库(pdflib.com)编写ffi。 您可以从他们的网站免费下载pdflib(功能齐全的eval。)
我尝试编译并运行他们的hello.c演示程序,它运行正常。
据我所知,我只需要2个文件才能使其正常工作:pdflib.h和libpdf.a
所以我将它们都放入hello文件夹,写了一个chs文件,它编译并生成hs文件。 但是当我尝试编译我的Hello.hs程序时,cabal抱怨
Cabal:缺少对外国图书馆的依赖: *缺少C库:pdflib
我尝试通过--extra-include-dirs和--extra-lib-dirs给它提供文件夹名称,但它没有帮助。
如何使用pdflib.h和libpdf.a文件编译haskell程序?
答案 0 :(得分:2)
从评论迁移到答案:
首先:我假设你的cabal文件中有“extra-libraries:pdf”?您需要确保名称精确匹配(即与库文件相同但没有'lib'前缀)。第二,我和.a文件的结果好坏参与,可能是因为我自己的无知,但总是在.so文件中取得成功。 - sclv 19小时前
答案 1 :(得分:0)
链接器需要能够找到您的.a文件。它将在通常的/ usr / lib路径中查找。您可以将pdflib安装到常规系统位置(例如通过包管理器)吗?这将是最简单的途径。