问题标签 [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.
haskell - 如何将黑线鳕与 c2hs 一起使用?
我正在使用 c2hs 编写一些 haskell 绑定,并且我想使用 Haddock 来记录自动生成的构造函数和函数参数。但是,c2hs 忽略了注释;
如何在不编写太多 FFI 代码的情况下获得这些字段的 Haddock 文档?
haskell - 使用 c2hs 和 cabal 构建
我有一个问题,cabal 不会对.chs
文件进行依赖解析,也就是说,如果A.chs
依赖于B.chs
(或真的B.chi
)那么 cabal 将无法弄清楚并以正确的顺序在文件上调用 c2hs。我知道 gtk2hs 使用自定义构建脚本,但是它相当复杂且专门用于 gtk2hs。是否有更简单的手动/自动进行.chs
依赖解析的方法(例如,以正确的顺序列出文件)?
haskell - 使用 c2hs 与结构和匿名联合进行交互
如何在 .chs 文件中编码这段 C 代码,以便 c2hs 可以将其转换为相对较好的东西?
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
没有问题。但是当我构建软件时,我遇到了问题。
我能够在较小的范围内重现该问题:
有了痕迹,我就可以更深入地进入兔子洞:
我不知道如何解决这个问题。顺便说一句,两者clang
和gcc
都可以通过 传递带有参数的宏-D
。
可能相关:
我有 Intel Iris Pro 5100(mbp 视网膜 15" 2013 年末)。
haskell - 如何声明对 Haskell 土地的回调
我正在连接一个 C 库,并且有一个函数,它的回调参数类型为(int (*fun) (void *))
。
我将如何处理这个c2hs
?我没有看到
https://github.com/haskell/c2hs/wiki/Implementation-of-Haskell-Binding-Modules或http://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(我需要它吗?)和目标文件。
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
给出相同的链接器错误:
haskell - c2hs 输入输出类型编组
我正在查看haskell-mpi 绑定,例如,我们有这个签名mpi.h
:
其中 inInternal.chs
表示如下:
问:我在理解输入参数周围发生的事情时遇到了一些麻烦:
-
修改器在做什么?c2hs wiki 说“Hs 函数的参数类型由所有编组规范的集合决定,其中 in 编组器后面没有减号”,但我仍然不明白。C 函数需要一个指向
int
; 输出编组器在做什么?AFAICT,它取消引用指针并将结果转换为布尔值。这个对吗?
注意:MPI_
前缀在函数名中由 a 引入{# context prefix="MPI"#}
。
NB2:
NB3: discard _ = return ()
,并且*-
修饰符用于运行一元动作但丢弃其结果
c - do..while(0) c2hs 中类似函数的 C 宏包装器
我想在 C 函数中包装一个类似函数的 C 宏(然后用{#fun ... #}
块将它包装在 Haskell 中),但是预处理器在语法c2hs
上窒息;do.. while(0)
这是代码:
这是错误:
我究竟做错了什么?我的目标是包装CHKERRQ
PETSc 库的宏,定义如下petscerror.h
(为了便于阅读,拆分为多行):
c - 带有 FFI 导入的 MPI 常量的 GHCi 链接器错误(通过 c2hs)
我正在通过重写绑定来弄清楚 haskell-mpi 是如何工作的。我正在尝试重新使用通过安装 PETSc 设置的 MPICH 安装(工作正常)。问题:make main
在 GHCi 中给了我一个正确的模块,但是当我请求计算 commWorld 时,链接器抱怨它找不到 MPI_COMM_WORLD 符号(但它在 makefile 的范围内)。
我究竟做错了什么?提前致谢
错误:
主要.chs:
生成文件:
mpi文件
haskell - 在 c2hs 中将一个裸结构从 C 返回到 Haskell
我正在尝试绑定到返回结构(按值)的 C 函数。我知道我可以使用 FFI 手动包装它,但不知道如何哄 c2hs 生成正确的代码。似乎认为我的函数正在返回一个指针。
这是一个简单的例子:
错误: