我正在尝试使用Qt 5.1.1构建qwtplot3d library。一切似乎都很好,它生成.dll文件,但我找不到.lib文件必须生成。我已从主干中提取源代码,但它似乎没有用Qt5构建(可能是用Qt4构建的)。可能这是QT5移植问题,但我无法解决任何问题。
你有什么想法吗?
答案 0 :(得分:1)
问题是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
顺便说一下,不要忘记在VS设置中将QWT3D_EXPORT_DLL定义添加到预处理器定义中,或者在其他地方定义它
或者只是将QWT3D_DLL,QWT3D_MAKEDLL定义添加到预处理器定义中,或者在其他地方定义它们;否则它根本无法生成lib文件。