Прикладные плагины с ошибками MingW и неопределенной ссылкой - PullRequest
1 голос
/ 06 августа 2010

У меня есть приложение Qt, которое использует Q_DECL_EXPORT, чтобы пометить определенные типы данных и функции моего основного исполняемого файла как экспортированные. Аналогично, когда я компилирую свои плагины, я помечаю те же символы с помощью Q_DECL_IMPORT, чтобы импортировать их.

Это прекрасно работает на Linux. Все, что мне нужно сделать, это скомпилировать с -rdynamic, и все идет хорошо. Visual Studio 2008 мне тоже понравился, он с радостью создает файл .lib для моего основного исполняемого файла, я просто связываю свои плагины с этим .lib, и теперь он знает, что эти символы будут найдены в основном приложении, когда Плагин загружен.

С другой стороны, MingW оказывается не таким уж и веселым. Основное приложение, как и ожидалось, компилируется без проблем. Но все плагины не работают во время соединения из-за ошибки «неопределенная ссылка», конечно, начиная с _imp__. Есть ли способ заставить MingW игнорировать эти ошибки, поскольку я знаю, что они будут исправлены при правильной загрузке?

Я пробовал флаги, такие как -Wl,--unresolved-symbols=ignore-all и -Wl,--allow-shlib-undefined, но безрезультатно.

Я хотел бы добавить MingW в список поддерживаемых компиляторов, но я не могу заставить эту единственную часть работать. Конечно, я не первый, кто хочет иметь плагин, который импортирует символы из приложения, в которое он загружается!

...