2
我正在學習如何從庫使C++調用Haskell代碼,我是從以下FFI完整的例子http://www.haskell.org/haskellwiki/FFI_complete_examplesGHC 7.6.3不產生_stub.c和_stub.o
然而指令,
後ghc -v Foo.hs
只有Foo_stub.h
和Foo.o
被創建,沒有Foo_stub.c
或Foo_stub.o
。根據Calling Haskell from C,ghc> 7.2不再生成_stub.o
。
在這種情況下,我仍然需要一個stub.o
來鏈接一個可執行文件使用g ++?
目前後
g++ -o test Foo.o test.o `cat link_options`
,我有很多不確定的符號錯誤的hs_init
等。是否因爲_stub.o
不存在或其他缺失?
我可以用GHC正確鏈接它們:
ghc -no-hs-main -o test test.o Foo.o -lstdc++
(閱讀這個問題後:Building a dynamic library with haskell and using it from C++)
但我不知道是不是仍然可以使用克至鏈接++?
我見過一個,但隻字不提如何使用G ++鏈接,請讓我知道如果我錯過了什麼。 – swang
引用GNU.org:引用C++編譯時,通常會調用編譯器「G ++」。由於只有一個編譯器,無論語言環境如何,將其稱爲「GCC」也是準確的;然而,當強調編譯C++程序時,術語「G ++」更有用。 http://gcc.gnu.org/onlinedocs/gcc-3.3.6/gcc/G_002b_002b-and-GCC.html –
感謝您的評論......但它如何回答我的問題?如果沒有stub.o,如何使用g ++/gcc鏈接目標,如使用ghc 6編譯時可以完成的那樣? – swang