我正在尝试创建一个数据结构,它将在Haskell中公开,但是在C++中实现。到目前为止,我已经在一个.cpp文件中实现了它,将我需要的所有函数声明为extern "C",并将源文件添加到.cabal文件的c-sources字段中。当我构建项目(在这种情况下使用stack build)时,似乎构建得很好。
我知道它正在对C++文件进行某些操作,因为如果有错误,它就无法编译。
我还没有尝试运行该项目,因为它是一个库,到目前为止还没有编写任何可运行的内容,但repl似乎不起作用。
当我尝试运行它(在这种情况下是stack repl),我会收到一个缺少符号错误,其中包含一些可能或可能不是指向我的文件中名称的搞乱了的名称。
我该如何解决这个问题?我之前遇到过类似的问题,当时我将源代码手动编译成动态库,并在项目中使用该库解决了问题。但是我不想这样做,因为这会将我与平台绑定,而且使用 GHC 工具本应该能够轻松地编译一个简单的 C++ 代码。我希望能够把这个程序放在 Hackage 上。
我是否遗漏了什么?如果没有,这是一个 bug 吗?有计划修复吗?
我知道它正在对C++文件进行某些操作,因为如果有错误,它就无法编译。
我还没有尝试运行该项目,因为它是一个库,到目前为止还没有编写任何可运行的内容,但repl似乎不起作用。
当我尝试运行它(在这种情况下是stack repl),我会收到一个缺少符号错误,其中包含一些可能或可能不是指向我的文件中名称的搞乱了的名称。
unknown symbol `_ZdlPv'
linking extra libraries/objects failed
我该如何解决这个问题?我之前遇到过类似的问题,当时我将源代码手动编译成动态库,并在项目中使用该库解决了问题。但是我不想这样做,因为这会将我与平台绑定,而且使用 GHC 工具本应该能够轻松地编译一个简单的 C++ 代码。我希望能够把这个程序放在 Hackage 上。
我是否遗漏了什么?如果没有,这是一个 bug 吗?有计划修复吗?
extra-libraries: stdc++
,但当我添加它时,它仍然无法工作。报告找不到库。我认为这是Windows上GHCi的错误。 - Luka Horvat