0

我有一个非常简单的(目前只是一个 main.cpp)CMake C++ 项目,我正在尝试在 Mac OS X 和 Windows 上构建它。它依赖于 libgsasl,我在两个平台上都将其编译为静态库。

Mac OS X 在构建过程中没有问题,Windows 在构建过程中也不会抱怨并生成 EXE。当我尝试在 Windows 上运行 EXE 时,它会给出一条错误消息,指出应用程序无法运行,因为它找不到 libgsasl.dll。

我什至没有尝试链接动态库,只是静态库(.lib 版本)。我错过了什么吗?在 Visual Studio 中,看起来 gsasl.lib 文件已找到并包含在链接命令中。

4

1 回答 1

1

在 MS 工具链中,.lib 可以是静态库,也可以是实际 DLL 的导入库。

您可以使用 dumpbin 查看库内部以查看它的实际类型。有几种不同的方法来处理细节,但我更喜欢的技术是使用 /summary 选项。导入库将具有 .idata$n 节(其中 n 是整数),而静态库将具有 .text 节。

于 2009-10-19T17:51:07.977 回答