基本的に、私のコードは NucleoProf_init でクラッシュします。これは、gdb のスタック トレースと、それが私が呼び出す唯一の関数であるという事実から判断します。
#include <HsFFI.h>
static char *argv[] = {"NucleoProf", "", "", 0};
static int argc = 1;
HsBool NucleoProf_init(void){
// Initialize Haskell runtime
hs_init(&argc, (char***)&argv );
return HS_BOOL_TRUE;
}
スタックトレースには次のものが含まれているため、argv 引数、またはおそらく argv の型キャストを渡す方法だと思います。
#3 0x00007ffff5956282 in setFullProgArgv ()
from /usr/lib/ghc/libHSrts-ghc7.4.1.so
#4 0x00007ffff5956d04 in hs_init_ghc () from /usr/lib/ghc/libHSrts-ghc7.4.1.so
#5 0x00007ffff5b9ed4f in NucleoProf_init ()
質問: これは簡単なコマンド ラインを「合成」する正しい方法ですか?