编译动态链接库

时间:2011-04-17 14:44:46

标签: windows dll cmake

我目前正在尝试编译动态可链接库,它们会在运行时与我正在编写的应用程序进行链接。 我不确定如何调用这些库,所以只是为了确定:它们是您在编译期间不加载的库,但在运行时使用:
- 使用libdl的dlopen / dlsync
- 使用Windows的LoadLibrary /(具有复杂名称的另一个)。

问题是我找不到一种在Windows下编译这些库的CMake方式:使用Linux,这非常有效:

set(libName  myLib)
set(srcFiles myLib.cpp)

add_library(${libName} MODULE ${srcFiles})

但是,运行Windows,它根本不起作用:Makefile正在尝试链接myLib.cpp引用的一些代码片段(但它不应该......那些符号应该在运行时解析)

如果它有帮助,我正在使用CodeBlocks MinGW生成器。

1 个答案:

答案 0 :(得分:0)

我认为这会有所帮助:

add_library($ {libname} SHARED $ {srcfiles})

正如CMake文档所述,MODULE应该用于构建应该使用 dlopen 类似功能动态加载的库。在Windows上使用SHARED而不是MODULE。