Qt 5.3.1 -静态构建导致链接器错误
Qt 5.3.1 - static building results in linker errors
我刚刚用MSVC 2013从Windows x86的Qt 5.3.1构建了静态库。第二步显然是使用这些库的静态链接应用程序。因此,我创建了一个小应用程序(只是一个带有一些控件的主窗口,用于测试目的)。这是我的*.pro文件:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = projectname
TEMPLATE = app
CONFIG += static
SOURCES += main.cpp
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
LIBS += -LC:staticslib -lQt5Core
-LC:staticslib -lQt5Gui
-LC:staticslib -lQt5Widgets
-LC:staticslib -lqtmain
-LC:staticslib -lQt5PlatformSupport
INCLUDEPATH += C:staticsinclude
是的。这是我从几个教程/我的记忆中得到的,当我使用5.1时。但是当编译时,我得到这些错误:
Qt5Core.lib(Qt5Core.dll):-1: error: LNK2005: "public: __thiscall QString::~QString(void)" (??1QString@@QAE@XZ) allready defined in mainwindow.obj.
mainwindow.obj:-1: error: LNK2019: Unresolved extern symbol ""public: static struct QArrayData const * const QArrayData::shared_null" (?shared_null@QArrayData@@2QBU1@B)" in Funktion ""public: __thiscall QString::QString(void)" (??0QString@@QAE@XZ)".
moc_mainwindow.obj:-1: error: LNK2001: Unresolved extern symbol ""public: static struct QMetaObject const QMainWindow::staticMetaObject" (?staticMetaObject@QMainWindow@@2UQMetaObject@@B)".
有人知道如何处理这些错误吗?我必须链接到一些其他库没有提到上面,或包括一些文件?我在谷歌上搜索了这个话题,发现很多人都遇到了同样的问题,但他们大多使用旧版本的Qt oder VS.我也试图将项目导出到Visual Studio(从Qt Creator工作),但错误仍然存在。
谢谢你的回答
QT += core gui
LIBS += -LC:staticslib -lQt5Core
-LC:staticslib -lQt5Gui
你加载两个Qt库两次:默认和自定义版本。默认情况下,QT包含核心库和gui库…必须手动删除:
QT -= core gui
从项目文件中删除LIBS
, INCLUDEPATH
,并在项目文件上运行静态构建中的qmake来创建makefile。如果这没有帮助,检查你的PATH
相关文章:
- 静态数据成员的问题-修复链接错误会导致编译器错误
- Visual Studio mkl_link_tool.exe链接错误
- C++ 实现模板单例类时出现链接错误
- 使用类模板的方法链接错误
- MySQL C++连接器链接错误
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- 运行 C++ 单元测试时LNK2005链接错误
- 对 CMake 中'cudaRegisterLinkedBinary'链接错误的未定义引用?
- 链接错误,包括我创建的相同头文件 - C++
- 在Embarcadero C++ Builder中生成的DLL未解决的外部链接错误
- 使用标头保护的多个定义链接错误
- 链接错误:未定义对 stdscr 和 wgetch 的引用
- 使用 Vivek 的 Vcam / 捕获源过滤器构建/链接错误
- 升压program_options中的链接错误
- 使用 g++ 预处理器进行替换会导致链接错误
- 在调试配置中编译工作正常,但发布会给出链接错误
- 相邻矩阵设置链接错误
- 包含常量变量并包含在多个文件中的标头的链接错误
- C++链接错误,我理解但无法解决
- 是什么导致macOS Mojave上的GoogleTest链接错误