21得票2回答
如何正确链接用Haskell编写的目标文件?

大致按照这篇教程的步骤,我成功地实现了这个玩具项目。它可以在C++程序中调用一个Haskell函数。 Foo.hs {-# LANGUAGE ForeignFunctionInterface #-} module Foo where foreign export ccall foo :...

21得票1回答
使用Fiddle将结构体传递给本地代码或从本地代码返回结构体是否可能?

我希望使用Fiddle来访问由Rust代码编译的本地库。该结构体的C表示非常简单,只有一个指针和一个长度: typedef struct { char *data; size_t len; } my_thing_t; // Example function that som...

21得票2回答
我该如何在构建脚本中指定链接器标志/参数?

我正在使用Rust,bindgen和build script来开发与库的FFI绑定相关的项目。 该库使用OpenMP构建,因此在链接时,我通常会向编译器传递-fopenmp标志。 如何在使用Cargo构建库时,通过build.rs设置该标志? 当前,使用Cargo构建失败,失败命令类似于...

20得票9回答
安装包不成功,无法安装 ffi 1.9.9,操作系统为 OSX 10.9。

bundle install Fetching gem metadata from https://rubygems.org/........... Fetching gem metadata from https://rubygems.org/.. Resolving depen...

20得票1回答
Rust中的PhantomData如何工作?

在Rust中,我发现PhantomData的概念非常令人困惑。我广泛地使用它来约束我的基于FFI的代码中的对象生命周期,但我仍然不确定我是否正确地使用了它。 这是一个编造的示例,展示我通常如何使用它。例如,我不希望MyStruct的实例超过Context的实例存在:// FFI declar...

20得票4回答
在C语言中,如何使用一个变量参数的列表来构建函数调用?

假设有一些参数以某种方式存储,例如在数组中。 给定一个函数指针,我如何调用它并传递存储的参数列表? 我不是试图将数组作为参数传递。你理解了没,好吧?我想逐个将其元素作为参数传递。数组只是为了说明,我可以将参数存储在某些元组结构中。此外,请注意,我手头有一个函数指针,并且可能具有字符串格式的签名...

18得票3回答
如何在Haskell中使用FFI处理结构体?

我创建了以下用于读取图像的C语言库:typedef struct { unsigned int height; unsigned int width; unsigned char* red; //length=height*width unsigned cha...

18得票1回答
如何使用Haskell和FFI与C枚举进行接口交互?

假设 charm.c 文件有一个枚举类型 key 和一个返回 key 类型值的函数 get_key()。 如何暴露相应的 Haskell 的 Key 记录和函数 getKey :: IO Key? 而且,如何在不手动指定每个枚举值如何映射到 Haskell 值的情况下完成这个任务?

18得票5回答
在使用 FFI 时,C99 的 bool 类型在 Haskell 中的等效类型是什么?

我有一个使用C99 bool数据类型的库,我想通过FFI调用它。 在Haskell中,C99 bool的对应类型是什么?在Foreign.C.types中有CInt、CShort等类型,但没有CBool。 如果没有“正确”的bool类型,有哪种安全的替代类型可以传递给期望bool的函数? ...

17得票2回答
为什么睡眠无效?

为什么在以下代码中会立即返回? {-# LANGUAGE ForeignFunctionInterface #-} import Foreign.C.Types import Data.Time.Clock import Control.Concurrent foreign import ...