我正在尝试使用 Qt 5.1.1构建qwtplot3d 库。一切似乎都很好,它生成了 .dll 文件,但我找不到必须生成的 .lib 文件。我已经从主干中提取了源代码,但它似乎不是用 Qt5 构建的(可能是用 Qt4 构建的)。可能这是 QT5 移植问题,但我无法解决。
你有什么主意吗?
我正在尝试使用 Qt 5.1.1构建qwtplot3d 库。一切似乎都很好,它生成了 .dll 文件,但我找不到必须生成的 .lib 文件。我已经从主干中提取了源代码,但它似乎不是用 Qt5 构建的(可能是用 Qt4 构建的)。可能这是 QT5 移植问题,但我无法解决。
你有什么主意吗?
问题在于 qwt3d_global.h 中定义的预处理器定义。这是我克服这个问题的一些解决方案。
替换下面的行,QT5 不再使用 Q_WS_WIN,因此将其替换为 Q_OS_WIN 预处理器定义。
#if defined(Q_WS_WIN)
with
#if defined(Q_OS_WIN)
然后,添加以下代码行以导出丢失的库,当前定义没有被使用但它们仍在这个文件中,我不知道为什么。
#if defined(QWT3D_EXPORT_DLL)
# define QWT3D_EXPORT Q_DECL_EXPORT
#else
# define QWT3D_EXPORT Q_DECL_IMPORT
#endif
顺便说一句,不要忘记将 QWT3D_EXPORT_DLL 定义添加到 VS 设置中的预处理器定义中,或者在其他地方定义它
或者只是将 QWT3D_DLL、QWT3D_MAKEDLL 定义添加到预处理器定义中,或者在其他地方定义它们;否则它根本无法生成 lib 文件。