相关疑难解决方法(0)

使用FFI声明时GHCi运行时链接程序问题

我有一个关于在Haskell FFI和GHC的交互模式的问题再次.

考虑FFISo.hs:

{-# LANGUAGE OverloadedStrings #-}
module Main where

import qualified Data.ByteString.Char8 as B

import FFIFun.Foo

main :: IO ()
main = do
  B.putStrLn "main"
  callMeFromC
  callMeFromHaskell
  return ()
Run Code Online (Sandbox Code Playgroud)

c.c:

#include <stdio.h>

void callMeFromC(void);

void callMeFromHaskell(void)
{
    printf("callMeFromHaskell\n");
    callMeFromC();
}
Run Code Online (Sandbox Code Playgroud)

FFIFun/Foo.hs:

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ForeignFunctionInterface #-}
module FFIFun.Foo where

import qualified Data.ByteString.Char8 as B

foreign import ccall "callMeFromHaskell"
  callMeFromHaskell :: IO ()

foreign export ccall callMeFromC :: IO ()
callMeFromC …
Run Code Online (Sandbox Code Playgroud)

linker haskell ffi ghci

51
推荐指数
1
解决办法
956
查看次数

标签 统计

ffi ×1

ghci ×1

haskell ×1

linker ×1