将静态链接库静态链接到动态链接库(dll)中。

今天我尝试在 Windows 上使用 LuaSec 绑定库构建 OpenSSL,以便在 Windows 上从 Lua 中使用它。(使用 MinGW / GCC,而不是 MS 编译器)

Lua 使用自己的路径搜索工具来定位 luasec 绑定库,但 luasec 只是尝试在原地打开 openssl 库。这意味着 luasec 库被整洁地放置在 Lua 包生态系统中,但是 openssl 库需要定位到进程可执行文件旁边,这里是 lua.exe。我最不喜欢的是,lua 可执行文件在系统路径中,但现在 openssl 库也在其中......

因此问题是:当我构建 LuaSec 绑定库时,它链接了 Lua 库和 openssl 库。现在我想将 openssl 库静态链接到其中。但不是 Lua 库。

结果将是一个包含 OpenSSL 代码的单个 luasec dll,可以由 Lua 动态加载。

这是可能的吗?如果是这样,有什么实现方法吗?

谢谢!

PS. 我看到了一些打包工具,但它们将整个应用程序打包到一个单独的可执行文件中,在这种情况下,我希望结果是一个 dll。

点赞