首页 > 解决方案 > 库已正确构建,但没有 .lib 文件

问题描述

我正在使用 cmake 构建一个 cpp 库。x86_64 我想要一个 SHARED lib,所以我正在使用 shared 并且一切都构建良好,没有任何错误,但它只是创建 dll 文件。我也在使用 __declspec(dllexport),所以应该有一个

稍后我想将 lib 与我的测试程序链接,但总是收到错误致命错误 LNK1181: cannot open input file '..\lib\Release\MQTTClient.lib'

因为 vs 没有创建任何 lib 文件...

任何人的想法?

标签: c++visual-studiocmake

解决方案


您可以使用 CMake 标志:

CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=True

它应该导出一个 .lib 文件,其中包含每个函数符号。

有关更多详细信息,请参阅官方CMake 文档

这个标志非常有用,尤其是当您必须处理第 3 方时,您需要在为 Windows 构建时将该标志传递给 CMake。

但最好明确标记要使用 __declspec(dllexport) 导出的函数。我真的不知道你做错了什么

(评论变成了答案)


推荐阅读