0

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

然而,在构建 dylib,确保安装路径/名称指向正确的位置,并用它构建我的项目之后,我总是会遇到一个运行时错误,它找不到 .dll ...不用说我很困惑至于为什么它甚至会在mac上寻找一个dll,但有人可以分享我做错了什么吗?

干杯!

PS:为了更加清楚,错误不是关于定位 .dylib (如果我不复制可执行路径中的 lib,它将首先出现),但是运行时加载 dylib 后它抱怨它找不到 .dylib。 dll

4

1 回答 1

1

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

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

如果您正在构建标准库,那么dylib您可能构建错误。dylib 是共享库,而 a.so或 a.bundle是可加载模块,参考这里:

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

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

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

于 2015-01-05T17:47:31.977 回答