库正确构建,但是没有.lib文件

时间:2018-08-17 11:22:41

标签: c++ visual-studio cmake

我正在使用cmake构建一个cpp库。 x86_64 我想要一个共享库,因此我正在使用共享,并且一切正常,没有任何错误,但它仅创建dll文件。我也在使用__declspec(dllexport),所以应该有一个

后来我想将库链接到我的测试程序,但总是收到致命错误LNK1181:无法打开输入文件'.. \ lib \ Release \ MQTTClient.lib'

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

有人知道吗?

1 个答案:

答案 0 :(得分:0)

您可以使用CMake标志:

CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=True

它应该导出一个.lib文件,其中包含所有功能符号。

有关更多详细信息,请参见官方CMake Documentation

此标志非常有用,尤其是当您必须与第三方打交道时,需要在为Windows构建时将标志传递给CMake。

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

(评论已转换为答案)