首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QT静态库静态编译

QT静态库静态编译
EN

Stack Overflow用户
提问于 2017-04-14 02:33:56
回答 1查看 205关注 0票数 1

我的任务是在Windows项目中使用我的库,在不使用Qt的计算机上使用。因此,我想用静态链接的Qt代码编译我的库。

我不明白如何将自己的代码编译到静态库中,静态地链接所有在其中使用的Qt内容。我下载了Qt的源代码,并使用msvc 2015静态编译了它(QT5.8.0),并在Qt中添加了新的静态qmake。我试图构建我的库,它成功了,但是在没有安装Qt的情况下,在其他计算机上使用它,会得到许多链接器错误-- LNK2001LNK2019

下面是一个错误的例子:

代码语言:javascript
复制
Error LNK2019 Unresolved External Symbol "public: int __thiscall
QJsonValue::toInt(int)const " (?toInt@QJsonValue@@QBEHH@Z) in function
"public: int __thiscall QJsonValueRef::toInt(void)const "
(?toInt@QJsonValueRef@@QBEHXZ)  ConsoleApplication2 c:\Users\Alex\documents\visualstudio
2015\Projects\ConsoleApplication2\ConsoleApplication2\TcpClient.lib(tcpthreadpart.obj)

因此,据我所知,所有Qt源都没有链接到我的库。在互联网上有一些关于如何用qt的静态链接编译.exe的指南,我试过编译我的库,但是失败了。你能帮忙吗?

EN

回答 1

Stack Overflow用户

发布于 2017-04-14 16:04:15

库本身必须是一个动态库,因为这是现有工具能够链接到任何东西的唯一类型。当您根据静态Qt构建该库时,库将根据您的意愿静态地使用Qt。

似乎您已经构建了一个静态库,因此没有将它与任何东西“链接”。从技术上讲,这是可能的,但没有工具可以做到这一点:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43404433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档