问题标签 [c2hs]

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.

0 投票
1 回答
140 浏览

haskell - 如何将黑线鳕与 c2hs 一起使用?

我正在使用 c2hs 编写一些 haskell 绑定,并且我想使用 Haddock 来记录自动生成的构造函数和函数参数。但是,c2hs 忽略了注释;

如何在不编写太多 FFI 代码的情况下获得这些字段的 Haddock 文档?

0 投票
1 回答
236 浏览

haskell - 使用 c2hs 和 cabal 构建

我有一个问题,cabal 不会对.chs文件进行依赖解析,也就是说,如果A.chs依赖于B.chs(或真的B.chi)那么 cabal 将无法弄清楚并以正确的顺序在文件上调用 c2hs。我知道 gtk2hs 使用自定义构建脚本,但是它相当复杂且专门用于 gtk2hs。是否有更简单的手动/自动进行.chs依赖解析的方法(例如,以正确的顺序列出文件)?

0 投票
1 回答
1464 浏览

haskell - 使用 c2hs 与结构和匿名联合进行交互

如何在 .chs 文件中编码这段 C 代码,以便 c2hs 可以将其转换为相对较好的东西?

0 投票
1 回答
361 浏览

haskell - OS X 10.9.5 上的 nvcc + c2hs

我正在构建一个需要编译的软件nvcc。我没有支持 CUDA 的 GPU,但实际上我不需要它——一个朋友正在 Linux 上构建完全相同的软件,他没有 CUDA GPU,但一切都很好。

我从https://developer.nvidia.com/cuda-downloads ( )安装了最新的 CUDA 工具包,cuda_6.5.14_mac_64.pkg没有问题。但是当我构建软件时,我遇到了问题。

我能够在较小的范围内重现该问题:

有了痕迹,我就可以更深入地进入兔子洞:

我不知道如何解决这个问题。顺便说一句,两者clanggcc都可以通过 传递带有参数的宏-D

可能相关:

我有 Intel Iris Pro 5100(mbp 视网膜 15" 2013 年末)。

0 投票
1 回答
351 浏览

haskell - 如何声明对 Haskell 土地的回调

我正在连接一个 C 库,并且有一个函数,它的回调参数类型为(int (*fun) (void *))

我将如何处理这个c2hs?我没有看到 https://github.com/haskell/c2hs/wiki/Implementation-of-Haskell-Binding-Moduleshttp://www.cse.unsw.edu.au/~chak/papers中提到的回调/Cha99b.html

在我的实际应用程序中,回调不做任何计算——它只需要检查是否同时设置了一些标志,我想从 Haskell 线程中设置它。(因此,显而易见的解决方法是在 C 语言中声明回调和标志,并让 Haskell 函数设置标志。)

(编辑)我还检查了https://wiki.haskell.org/Calling_Haskell_from_C但因为“ghc -c ...将创建Safe_stub.c ...”而拒绝了它,我确信对C的编译早已不复存在。但实际上我得到了一个 stub.h(我需要它吗?)和目标文件。

0 投票
1 回答
134 浏览

c - C2HS 生成的 C 绑定中的链接器错误

我使用 ; 构建并运行以下最小示例(无外部依赖项 C->Haskell Compiler, version 0.25.2 Snowboundest, 31 Oct 2014 build platform is "x86_64-darwin" <1, True, True, 1>)构建命令:

但链接器抱怨

问:为什么会这样,我该如何解决?提前谢谢

A : tl; dr : 我没有将 .c 编译成 .o 目标代码,呵呵!

代码如下:

结构体.chs

结构体.h

结构体.c

结构体.hs

编辑:ghc --make Structs.hs给出相同的链接器错误:

0 投票
1 回答
231 浏览

haskell - c2hs 输入输出类型编组

我正在查看haskell-mpi 绑定,例如,我们有这个签名mpi.h

其中 inInternal.chs表示如下:

问:我在理解输入参数周围发生的事情时遇到了一些麻烦:

  • -修改器在做什么?c2hs wiki 说“Hs 函数的参数类型由所有编组规范的集合决定,其中 in 编组器后面没有减号”,但我仍然不明白。

  • C 函数需要一个指向int; 输出编组器在做什么?AFAICT,它取消引用指针并将结果转换为布尔值。这个对吗?

注意:MPI_前缀在函数名中由 a 引入{# context prefix="MPI"#}

NB2:

NB3: discard _ = return (),并且*-修饰符用于运行一元动作但丢弃其结果

0 投票
2 回答
207 浏览

c - do..while(0) c2hs 中类似函数的 C 宏包装器

我想在 C 函数中包装一个类似函数的 C 宏(然后用{#fun ... #}块将它包装在 Haskell 中),但是预处理器在语法c2hs上窒息;do.. while(0)这是代码:

这是错误:

我究竟做错了什么?我的目标是包装CHKERRQPETSc 库的宏,定义如下petscerror.h(为了便于阅读,拆分为多行):

0 投票
2 回答
104 浏览

c - 带有 FFI 导入的 MPI 常量的 GHCi 链接器错误(通过 c2hs)

我正在通过重写绑定来弄清楚 haskell-mpi 是如何工作的。我正在尝试重新使用通过安装 PETSc 设置的 MPICH 安装(工作正常)。问题:make main在 GHCi 中给了我一个正确的模块,但是当我请求计算 commWorld 时,链接器抱怨它找不到 MPI_COMM_WORLD 符号(但它在 makefile 的范围内)。

我究竟做错了什么?提前致谢

错误:

主要.chs:

生成文件:

mpi文件

0 投票
1 回答
339 浏览

haskell - 在 c2hs 中将一个裸结构从 C 返回到 Haskell

我正在尝试绑定到返回结构(按值)的 C 函数。我知道我可以使用 FFI 手动包装它,但不知道如何哄 c2hs 生成正确的代码。似乎认为我的函数正在返回一个指针。

这是一个简单的例子:

错误: