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

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

我什至不试图链接到动态库,而是静态库(.lib版本)。我想念什么吗?在Visual Studio中,看起来gsasl.lib文件已找到并包含在链接命令中。

最佳答案

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

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

关于c++ - CMake Visual Studio链接可执行文件与静态库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1579426/

10-15 10:31