【发布时间】:2018-10-08 10:23:45
【问题描述】:
项目在 Linux 上构建良好,但在 Windows 中链接有问题。
第一期:
LNK2019: unresolved external symbol ...
LNK1120: 21 unresolved externals
.pro 文件包含:
isEmpty(IDE_BUILD_TREE): IDE_BUILD_TREE = ../../qt-creator-debug
LIBS += -L$${IDE_BUILD_TREE}/lib/qtcreator/plugins -lMyLibrary
注意。
MyLibrary在构建之前部署到$${IDE_BUILD_TREE}/lib/qtcreator/plugins。使用 Qt 5.10.1 和 MSVC 2015 构建。
这里有什么问题/技巧?如何解决?
第二期:
在库.pro 文件VERSION 中定义了变量,结果库的名称为MyLibrary1.lib。此后我得到错误:
:-1: error: LNK1181: cannot open input file 'MyLibrary.lib'
这里有什么更好的解决问题的方法:删除VERSION 或修复.pro 文件?怎么样?
第三期:
另一个链接错误:
mydialog.obj:-1: error: LNK2001: unresolved external symbol
"struct QMetaObject const MyLibrary::staticMetaObject"
(?staticMetaObject@MyLibrary@@3UQMetaObject@@B)
由于以下代码行发生错误(注释掉时消失):
mydialog.cpp:
QMetaEnum myEnum = QMetaEnum::fromType<MyLibrary::MyEnumClass>();
mylibrary.h:
namespace MyLibrary {
Q_NAMESPACE
enum class MYLIBRARYSHARED_EXPORT MyEnumClass {
...
};
Q_ENUM_NS(MyEnumClass)
...
} // namespace MyLibrary
第三个怎么解决?
【问题讨论】:
标签: c++ windows qt linker-errors qmake