gpt4 book ai didi

c++ - 在 Haskell 项目中包含 C++ 源代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:43:13 24 4
gpt4 key购买 nike

我正在尝试制作一个将在 Haskell 中公开但在 C++ 中实现的数据结构。到目前为止,我已经在 .cpp 文件中实现了它,将我需要的所有函数声明为 extern "C" 并将源文件添加到 c- .cabal 文件中的 sources 字段。当我构建项目时(在本例中使用 stack build),它似乎构建得很好。

我知道它正在对 C++ 文件做某事,因为如果有错误它就不会编译。

我还没有尝试运行这个项目,因为它是一个库,到目前为止它还没有写任何“可运行”的东西,但 repl 似乎不起作用。

当我尝试运行它时(在本例中为 stack repl),我收到一个丢失的符号错误,其中包含一些损坏的名称,这些名称可能是也可能不是我文件中的名称。

unknown symbol `_ZdlPv'
linking extra libraries/objects failed

我该如何解决这个问题?我之前遇到过类似的问题,我通过手动将源代码编译成动态库然后在我的项目中使用该库来解决。我不想这样做,因为它把我束缚在一个平台上,并且因为不能使用 GHC 已有的工具在项目中编译简单的 C++ 是没有意义的。我希望能够将其用于黑客攻击。

有什么我想念的吗?如果不是,这是一个错误吗?是否有修复它的计划?

最佳答案

好的,我现在已经设法“修复”了这个问题。

我在我的 cabal 文件中添加了一个 extra-libraries: stdc++-6, gcc_s_seh-1,现在它可以工作了。不知道这是否与平台无关,但当我通过堆栈安装时,这些库确实随 GHC 一起提供。

关于c++ - 在 Haskell 项目中包含 C++ 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37101999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com