2009-10-16 89 views
0

我有一个非常简单的(目前只是一个main.cpp)CMake C++项目,我试图在Mac OS X和Windows上构建。它依赖于libgsasl,我已经在两个平台上将它编译为静态库。CMake Visual Studio链接可执行文件与静态库

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

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

+0

你能发布cl正在使用的确切命令来构建exe吗? – 2009-10-16 18:15:48

+0

你可以发布你的CMakeLists.txt吗? – 2009-10-17 12:18:13

回答

1

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

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

相关问题