我正在尝试将ChaiScript集成到我的Mac / c ++小项目中。虽然我可以通过使用ChaiScript chai(Std_Lib.library())构建chaiscript_stdlib.hpp /来使用它,但我真的很想单独构建该库。
但是,在构建dylib之后,确保安装路径/名称指向正确的位置,并使用它构建我的项目,我总是会遇到一个运行时错误,即找不到.dll。不用说,我深感困惑至于为什么它甚至会在Mac上寻找dll,但是有人可以分享一些我做错了的事情吗?
干杯!
PS:需特别清楚,错误不是关于定位.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/