如何让CMake创建一个dll文件及其对应的lib文件?

37

我正在使用CMake通过Visual Studio 2010创建共享库。该解决方案输出一个dll文件,但没有相应的lib文件。我该如何告诉CMake生成lib文件,以便我可以将其他项目链接到dll上?

2个回答

39

首先,确认你至少在共享库中导出了一个符号。如果dll未导出符号,则Visual Studio不会生成.lib文件。

接下来,检查你的cmake文件——可能你已经设置了CMAKE_ARCHIVE_OUTPUT_DIRECTORY变量或共享库目标的ARCHIVE_OUTPUT_DIRECTORY属性。如果这些变量/属性被设置,则Visual Studio将输出.lib文件到由该变量/属性指定的不同目录。(也可以有特定于配置的版本,如ARCHIVE_OUTPUT_DIRECTORY_Release。)


8
我没有导出任何函数。谢谢! - May Oakes

2
将以下命令添加到您的 CMakeLists.txt 文件中: set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接