gpt4 book ai didi

c++ - Mac/c++ 上的 ChaiScript std lib 在运行时寻找 dll

转载 作者:行者123 更新时间:2023-11-28 06:30:09 25 4
gpt4 key购买 nike

我正在尝试将 ChaiScript 集成到我的小型 Mac/c++ 项目中。虽然我可以通过构建 chaiscript_stdlib.hpp/使用 ChaiScript chai(Std_Lib.library()) 来很好地使用它,但我真的很想单独构建库。

但是在构建 dylib 之后,确保安装路径/名称指向正确的位置,并使用它构建我的项目,我总是得到一个运行时错误,它找不到 .dll ...不用说我'我对为什么它甚至会在 Mac 上寻找 dll 感到非常困惑,但是任何人都可以分享我做错了什么吗?

干杯!

P.S.:更清楚地说,错误与定位 .dylib 无关(如果我不将 lib 复制到可执行路径中,它将首先出现),而是加载dylib 在运行时提示找不到 .dll

最佳答案

在不知道您遇到的确切错误的情况下,我猜您误读了错误消息。

ChaiScript 在查找其运行时库时不区分文件扩展名。它也不会尝试加载多个标准库。这是为了处理 mingw/cygwin 构建可能会生成 .so 或 .dll 文件或其他任何文件的事实,具体取决于开发人员的心血来潮。因此,在所有平台上,ChaiScript 都会尝试查找具有可能扩展集的库 ( .so, .dll, `` )

如果您将标准库构建为 dylib,您可能构建错误。 dylib 是一个共享库,而 .so.bundle 是一个可加载模块,在这里引用:

http://fink.thetis.ig42.org/doc/porting/shared.php

CMake 使用 .so 扩展名在 MacOS 上编译可加载模块,这是 ChaiScript 在搜索库时使用的扩展名。

请确保您将标准库编译为适用于您的平台的共享模块。我相信 -bundle 需要传递给链接器。

关于c++ - Mac/c++ 上的 ChaiScript std lib 在运行时寻找 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27744743/

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