私はhaskellから呼び出したいpdflib_py.soライブラリを持っています。私はヘッダファイルを持っていません。あなたが見ることができるように、libの名前は標準のlibbla形式ではありません。ヘッダファイルなしでhaskellから共有ライブラリを使用するには?
どのように私はそれをhaskellからアクセスしますか?
私はc2hsチュートリアルに従いました。しかし、ヘッダファイル(私は持っていない)を必要とし、ghcはライブラリ名をlibbla形式にする必要があります。私はもちろんpdflib_py.soをlibpdfpy.soにリネームすることができますが、実際に試してみましたが(動作しませんでしたが)、その名前のためにhaskellからライブラリにアクセスできないと仮定するのは愚かです。私は確かにここに何かを欠いている。私はC++ライブラリが、Pythonのいずれかを使用していないのはなぜ
ます彼らは、C++のためのバンドルを持ってここにhttp://www.pdflib.com/download/pdflib-family/pdflib-8/
からのPDFlibライブラリをダウンロードすることができ、Javaの、PHP、Pythonのなど
?まあ、C++ライブラリlibbpdf.aはg ++でコンパイルする必要があります。そして、haskellはg ++で動かないので、まずCラッパーを書く必要があります。幸いにも誰かが私のためにそれをしました。これがpdflib_py.soの機能です。libpdfライブラリのcラッパーです。
したがって、どのように私はhaskellからの標準的でない名前のヘッダーファイルのライブラリを使用しますか?
に私はこのCOMANDでコンパイルしました:G ++ -shared -fPIC -o libpdf.so libpdf.aそしてパンを得ましたdiff /リンクエラー:dist/build/hello/hello-tmp/Main.o:関数 's4lT_info ': (.text + 0x2fd):未定義の' PDF_delete'への参照... –
Thx、それは働いた。 g ++ -shared -fPIC -g -o libpdf.so -Wl、全アーカイブlibpdf.a -Wl、-not-whole-archive –