首页 > 解决方案 > 在 qmake 中允许未定义的符号

问题描述

我使用 qmake 和 .pro 文件来生成我的 VisualStudio .vcxproj 文件。

我创建了一个静态库,其中包含用于我所有错误处理的辅助函数。这包括用于从 QSqlTableModel 和 QSqlQuery 中获取错误代码的包装器。

我的图书馆项目有 QT += sql 为了支持这些方法。

我试图避免将 QT += sql 依赖项添加到链接库但不使用 sql 的应用程序中。

我已将 QSqlTableModel 和 QSqlQuery 作为指针传递到库中并转发声明它们,因此我可以毫无问题地进行编译。

但我得到链接器错误未解决的外部符号“__declspec(dllimport) public: class QSqlError __cdecl QSqlQueryModel::lastError(void)const”

我可以通过将 QT += sql 添加到我的应用程序来轻松解决链接器错误。

但是,鉴于我的应用程序永远不会真正调用它,我是否可以让链接器愉快地继续前进(如果我曾经调用它,可能会让应用程序抛出一个大的结构化异常)?

标签: qtstatic-librarieslinker-errorsqmake

解决方案


但是,鉴于我的应用程序永远不会真正调用它

然而,你的静态库中的函数调用它,这就是你需要QT+=sql.


推荐阅读