我正在使用CMake通过Visual Studio 2010创建共享库。该解决方案输出一个dll文件,但没有相应的lib文件。我该如何告诉CMake生成lib文件,以便我可以将其他项目链接到dll上?
我正在使用CMake通过Visual Studio 2010创建共享库。该解决方案输出一个dll文件,但没有相应的lib文件。我该如何告诉CMake生成lib文件,以便我可以将其他项目链接到dll上?
首先,确认你至少在共享库中导出了一个符号。如果dll未导出符号,则Visual Studio不会生成.lib
文件。
接下来,检查你的cmake文件——可能你已经设置了CMAKE_ARCHIVE_OUTPUT_DIRECTORY
变量或共享库目标的ARCHIVE_OUTPUT_DIRECTORY
属性。如果这些变量/属性被设置,则Visual Studio将输出.lib
文件到由该变量/属性指定的不同目录。(也可以有特定于配置的版本,如ARCHIVE_OUTPUT_DIRECTORY_Release
。)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)