Ошибка компоновщика MSVC LNK2011, но символ присутствуетC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ошибка компоновщика MSVC LNK2011, но символ присутствует

Сообщение Anonymous »

Я создал проект cmake, dll-регистратор и еще одну dll, которая импортирует регистратор. Они взяты из CMakeLists.txt, поэтому различий в параметрах сборки нет.
Класс регистратора похож на

Код: Выделить всё

class LPLOGGER_EXPORT Logger : public QObject {
Q_OBJECT
/*...*/
};
И все символы экспортируются нормально. И .lib, и .dll.

Код: Выделить всё

dumpbin /EXPORTS lpLibs\lpLogger\lpLogger.lib
Microsoft (R) COFF/PE Dumper Version 14.29.30159.0
Copyright (C) Microsoft Corporation.  All rights reserved.

Dump of file lpLibs\lpLogger\lpLogger.lib

File Type: LIBRARY

Exports

ordinal    name
??0ErrorBuilder@@QEAA@HAEBVQLoggingCategory@@@Z (public: __cdecl ErrorBuilder::ErrorBuilder(int,class QLoggingCategory const &))
??0ErrorBuilder@@QEAA@W4QtMsgType@@AEBVQString@@@Z (public: __cdecl ErrorBuilder::ErrorBuilder(enum QtMsgType,class QString const &))
?staticMetaObject@Logger@@2UQMetaObject@@B (public: static struct QMetaObject const Logger::staticMetaObject)

Компоновщик \verbose видит файл lib и может читать все символы

Код: Выделить всё

    Searching lpLibs\lpLogger\Debug\lpLogger.lib:
Found "public: __cdecl ErrorBuilder::ErrorBuilder(enum QtMsgType,class QString const &)" (??0ErrorBuilder@@QEAA@W4QtMsgType@@AEBVQString@@@Z)
Referenced in filelistdownloader.cpp.obj
Loaded lpLogger.lib(lpLogger.dll)
Found "public: __cdecl ErrorBuilder::ErrorBuilder(int,class QLoggingCategory const &)" (??0ErrorBuilder@@QEAA@HAEBVQLoggingCategory@@@Z)
Referenced in filelistdownloader.cpp.obj
Referenced in utils.cpp.obj
Loaded lpLogger.lib(lpLogger.dll)
Пока не может.

Код: Выделить всё

error LNK2001: unresolved external symbol "public: static struct QMetaObject const Logger::staticMetaObject" (?staticMetaObject@Logger@@2UQMetaObject@@B)
И единственный вопрос, который у меня возникает: насколько это вообще законно?
Примечательно, что MinGW без проблем собирает тот же проект.>

Подробнее здесь: https://stackoverflow.com/questions/798 ... ol-present
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»