Проект прекрасно работает на Linux, но имеет проблемы с линковкой в Windows.
1-й выпуск:
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.
В чем здесь проблема / хитрость? Как решить?
2-й выпуск:
В библиотеке .pro
определена переменная файла VERSION
, и результирующая библиотека имеет имя MyLibrary1.lib
. После этого я получаю ошибку:
:-1: error: LNK1181: cannot open input file 'MyLibrary.lib'
Какой лучший способ решить проблему здесь: удалить VERSION
или исправить .pro
файл? Как?
3-й выпуск:
Другая ошибка ссылки:
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
А как решить 3-й?