问题标签 [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 编译器附带了一个不错的 FFI C 接口。
来自 java 背景,我尽量避免使用 C,所以我的问题是:有没有人对 LuaJIT 有一些经验,尤其是它的 FFI 接口,以及为几乎没有知识的人建立一个库有多困难C?
xcode - 如何使用 Xcode LLVM 编译器编译和使用 Haskell 作为 C 库?
我想建立一个项目来获取我的 .hs 代码和我的主 .c 程序,并通过使用 LLVM 编译器生成一个静态链接的可执行文件。我可以通过 ghc 命令行选项来构建 .hs,生成存根,并完全使用 ghc 编译和链接驱动程序应用程序。但是,我在 Xcode 中遇到了各种问题。
我的第一个问题是我当然需要在 Xcode 中使用 32 位编译环境。解决了,我不得不摆弄明确包含 HsFFI.h 的路径。解决了,我得到一个链接器错误:
“simpleFunction”在我使用 ghc 编译的“ForeignExportCost.a”库中,如下所示:
我错过了什么或做错了什么?
pointers - Haskell 的 Foreign.C 等效于 C 的 & 运算符 (&)
如您所知,对于ident
C 中的任何标识符,您都可以编写&ident
以获取指向 的内存位置(指针)ident
,而不管该位置是在堆上还是在堆栈上。在使用 C 类型时,访问此功能通常很有帮助。
FFI 中的 Haskell 中是否有等效的操作?
c - 如何在 C 和 gprolog 之间进行接口?
我在接口 C 和 Prolog 代码方面有点不幸。我们在 C 中有一些数据收集代码,在 Gnu-Prolog 中有一些分析代码。那么接口 C 和 gprolog 的最佳方法是什么?我目前正在尝试使用 gprolog 包中包含的 C 库从 C 中调用 Prolog。
注意:我正在使用 ubuntu 机器。
我面临的问题之一是如何迭代列表。我终于意识到,虽然你可以从 n 个元素中创建一个列表,但你必须以 Prolog 的方式对其进行迭代——获取头部并获取尾部并递归。
linux - 未找到 FFI 错误模块
我正在使用 Ubuntu 64 位和 Pharo 1.2.1
我编写了一些从 glibc 访问 crypt(3) 的 FFI 代码。我想将其更改为从我使用 apt-get 安装的 libxcrypt 访问 crypt。当我改变方法时:
到:
我收到未找到外部模块错误。我已经从我的图像所在的目录链接到 libxcrypt.so.1 文件。
我怀疑它可能是 64 位与 32 位库的东西,或者我需要将库链接到其他地方但不知道。
我可以检查哪些步骤或事情来尝试找出无法找到外部模块的原因?
python - Passing Numpy arrays to a C function for input and output
Oh my word I'm a fool. I was simply omitting the second and third arguments when calling the function. Like a fool. Because that's what I am. Original silly question follows:
This seems like it must be a very common thing to do, but I can't find a relevant tutorial, and I'm too ignorant about Numpy
and ctypes
to figure it out myself.
I have a C function in file ctest.c
.
(As you may guess, I originally had the arguments as double * rather than void *, but couldn't figure out what to do on the Python side. I'd certainly love to change them back, but I'm not picky as long as it works.)
I make a shared library out of it. gcc -fPIC -shared -o ctest.so ctest.c
Then in Python, I have a couple numpy arrays, and I'd like to pass them to the C function, one as input and one as output.
This doesn't report any errors, but prints out
The outdata array is not modified. And in fact if I call the function again I get a segfault. Which doesn't surprise me -- I really don't know what I'm doing here. Can anyone point me in the right direction?
haskell - Haskell 中的 FFI,关于 LANGUAGE CPP 以及如何将 ac struct 与 FFI 一起使用的问题
我对 Haskell 中的 FFI 有一些疑问
- 我知道我必须使用语言编译指示,但是当我使用CPP 可以“更多”做什么时有什么
{-# LANGUAGE ForeignFunctionInterface #-}
区别{-# LANGUAGE CPP, ForeignFunctionInterface #-}
- 我在 c 中使用了一个使用 a 的函数,
struct
我该如何在 FFI 中处理这个? - 我什么时候必须用
CInt
,什么时候才用Int
?
c - 嵌入时如何使用LuaJIT的ffi模块?
我正在尝试将 LuaJIT 嵌入到 C 应用程序中。代码是这样的:
Lua 代码是这样的:
它报告如下错误:
我四处搜索,发现 ffi 模块上的文档很少。非常感谢。
ruby - 跨平台 Ruby FFI 库
我正在为谷歌的 cityhash 库(c++)编写 FFI ruby 包装器。那么,让它跨平台(linux、windows、macos)的最佳方法是什么?我需要在 gem 安装期间将谷歌的库编译到共享库吗?还是只编译一次并与 gem 一起发布?
scheme - 如何从(MIT)方案调用本机代码?
如何MessageBox
从 Scheme 中调用本机函数(例如 )?