我有pdflib_py.so庫,我想從haskell調用。我沒有頭文件。正如你所看到的,lib的名字不是標準的libbla形式。如何使用haskell中沒有頭文件的共享庫?
我如何從haskell訪問它?
我跟着c2hs教程。但它需要一個頭文件(我沒有),而且ghc需要庫名稱爲libbla格式。我當然可以將pdflib_py.so重命名爲libpdfpy.so,實際上我嘗試了它(它不起作用),但是這很愚蠢,以至於無法從Haskell中訪問庫,因爲它的名稱。我肯定在這裏錯過了一些東西。
你可以從這裏http://www.pdflib.com/download/pdflib-family/pdflib-8/
下載的PDFlib庫他們對C++捆綁,JAVA,PHP,蟒蛇等
我爲什麼不使用C++庫,但蟒蛇呢?那麼,C++庫libbpdf.a需要用g ++編譯。並且haskell不能用於g ++,我必須先寫一個C封裝器。幸運的是有人已經爲我做了。這是一個pdflib_py.so - 一個關於libpdf庫的c包裝。
那麼,我如何使用非標準名稱的庫和哈希克爾沒有頭文件?
我沒有這個COMAND編譯:G ++ -shared -fPIC -o libpdf.so libpdf.a然後拿到包子鏈接錯誤:dist/build/hello/hello-tmp/Main.o:在函數's4lT_info'中: (.text + 0x2fd):對'PDF_delete'的未定義引用... – 2012-04-16 01:28:27
Thx,它工作。正確的命令是:g ++ -shared -fPIC -g -o libpdf.so -Wl, - whole-archive libpdf.a -Wl, - no-whole-archive – 2012-04-16 15:39:52