問題タブ [ffi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - LuaJIT FFIはどのくらい難しいですか?
私は最近Luaを調べましたが、それは本当に素晴らしいようです。唯一の厄介なことは、(標準)ライブラリがないことです。しかし、JITコンパイラには、優れたFFICインターフェイスが付属しています。
Javaのバックグラウンドから来て、私はCをできるだけ避けようとしたので、私の質問:LuaJIT、特にそのFFIインターフェースの経験がある人はいますか?知識がほとんどない人のためにライブラリをセットアップするのはどれほど難しいですか? C?
xcode - Xcode LLVMコンパイラを使用してHaskellをCライブラリとしてコンパイルして使用するにはどうすればよいですか?
.hsコードとメインの.cプログラムを取得するプロジェクトをセットアップし、LLVMコンパイラーを使用して静的にリンクされた実行可能ファイルを作成したいと思います。ghcコマンドラインオプションを使用して、.hsを構築し、スタブを生成し、ghcを完全に使用してドライバーアプリケーションをコンパイルおよびリンクすることができます。ただし、Xcode内でさまざまな問題が発生します。
私の最初の問題は、もちろんXcodeで32ビットのコンパイル環境を使用する必要があるということでした。それが解決したので、HsFFI.hを明示的に含めるためにパスをいじる必要がありました。これで解決し、リンカーエラーが発生します。
「simpleFunction」は「ForeignExportCost.a」ライブラリにあり、次のようにghcを使用してコンパイルします。
私は何が欠けているか、間違っていますか?
pointers - C のアンパサンド演算子 (&) に相当する Haskell の Foreign.C
ご存じのようにident
、Cの任意の識別子について、その場所がヒープ上にあるかスタック上にあるかに関係なく、&ident
へのメモリ位置 (ポインタ) を取得するように記述できます。ident
C 型を使用している場合、この機能にアクセスできると便利なことがよくあります。
FFIのHaskellに同等の操作はありますか?
c - C と gprolog の間でどのようにやり取りするのですか?
私は、C と Prolog のコードをやり取りするというやや不運な立場にいます。C のデータ収集コードと Gnu-Prolog の分析コードがあります。では、C と gprolog を接続する最良の方法は何でしょうか? 現在、gprolog パッケージに含まれている C ライブラリを使用して、C から Prolog を呼び出そうとしています。
注:私はubuntuマシンで作業しています。
私が直面していた問題の 1 つは、リストを反復処理する方法でした。n 個の要素からリストを作成することはできますが、Prolog 方式で反復処理する必要があることに最終的に気付きました。頭を取得し、末尾を取得して、再帰します。
linux - FFIエラーモジュールが見つかりません
Ubuntu64ビットとPharo1.2.1を使用しています
glibcからcrypt(3)にアクセスするFFIコードをいくつか作成しました。apt-getを使用してインストールしたlibxcryptからcryptにアクセスするように変更したいと思います。メソッドを次のように変更すると、次のようになります。
に:
外部モジュールが見つかりませんというエラーが発生します。画像があるディレクトリからlibxcrypt.so.1ファイルにリンクしました。
64ビットと32ビットのライブラリの問題であるか、ライブラリを別の場所にリンクする必要があるのではないかと思いますが、わかりません。
外部モジュールが見つからない理由を突き止めるために確認できる手順や事項は何ですか?
python - 入出力のためにNumpy配列をC関数に渡す
ああ、私の言葉は私はばかです。 関数を呼び出すときに、2番目と3番目の引数を単に省略していました。馬鹿のように。それが私ですから。元のばかげた質問は次のとおりです。
これは非常に一般的なことのように思えますが、関連するチュートリアルが見つからず、自分でそれを理解することについて無知Numpy
ですctypes
。
ファイルにC関数がありますctest.c
。
(ご想像のとおり、私はもともと引数をvoidではなくdouble *として持っていましたが、Python側で何をすべきか理解できませんでした。確かにそれらを元に戻したいのですが、私はそれが機能する限り。)
私はそれから共有ライブラリを作成します。gcc -fPIC -shared -o ctest.so ctest.c
次に、Pythonで、いくつかのnumpy配列があり、それらをC関数に渡します。1つは入力として、もう1つは出力として渡します。
これはエラーを報告しませんが、出力します
outdata配列は変更されません。実際、関数を再度呼び出すと、セグメンテーション違反が発生します。それは私を驚かせません-私は本当に私がここで何をしているのか分かりません。誰かが私を正しい方向に向けることができますか?
haskell - HaskellのFFI、LANGUAGE CPPに関する質問、およびFFIでのacstructの使用方法
HaskellのFFIについていくつか質問があります
- 言語プラグマを使用する必要があることはわかっていますが、CPPで「もっと」できることを
{-# LANGUAGE ForeignFunctionInterface #-}
使用する場合の違いは何ですか{-# LANGUAGE CPP, ForeignFunctionInterface #-}
- を使用するcの関数を使用します
struct
が、FFIでこれを処理するにはどうすればよいですか? - 私が使用
CInt
しなければならないときとちょうどInt
?
c - 埋め込み時に LuaJIT の ffi モジュールを使用するには?
LuaJIT を C アプリケーションに埋め込もうとしています。コードは次のようになります。
Lua コードは次のようになります。
次のようなエラーが報告されます。
私は周りを検索しましたが、 ffi モジュールに関するドキュメントはほとんどないことがわかりました。どうもありがとう。
scheme - (MIT)スキームからネイティブコードを呼び出すにはどうすればよいですか?
MessageBox
Schemeからネイティブ関数(たとえば)を呼び出すにはどうすればよいですか?