代码之家  ›  专栏  ›  技术社区  ›  Matt Moriarity

CMAKE Visual Studio将可执行文件与静态库链接

  •  0
  • Matt Moriarity  · 技术社区  · 16 年前

    我有一个非常简单的(当前只是一个主要的.CPP)CGED C++项目,我试图在Mac OS X和Windows上构建它。它依赖于libgsasl,我已经在两个平台上编译为静态库。

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

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

    1 回复  |  直到 16 年前
        1
  •  1
  •   R Samuel Klatchko    16 年前

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

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