mingw выплевывает бесчисленные предупреждения о игнорировании атрибута «dll import» - PullRequest
3 голосов
/ 09 февраля 2009

Я использую mingw32-make для компиляции проекта qt, который использует opengl, он компилируется правильно и все, но он выдает бесчисленные предупреждающие сообщения в форме:

c:/qt3/include/qcolor.h:67: warning: inline function `int qGray(int, int, 
int)' declared as dllimport: attribute ignored

Для этого конкретного экземпляра объявление функции:

Q_EXPORT inline int qGray( int r, int g, int b )// convert R,G,B to gray 0..255
{ return (r*11+g*16+b*5)/32; }

Мой вопрос: почему он выплевывает все эти предупреждения? как я могу заставить их замолчать, не заглушая другие законные предупреждения (т.е. предупреждения, которые имеют непосредственное отношение к моему коду и могут быть потенциальными проблемами)?

Что более важно, почему mingw игнорирует атрибут импорта dll в первую очередь?

1 Ответ

0 голосов
/ 09 февраля 2009

Я думаю, что Qt должен определять Q_EXPORT (Q_DECL_EXPORT в Qt 4) только как атрибут dllexport / import, если определен один из следующих макросов, поэтому убедитесь, что ваши make-файлы или код, включающий заголовки Qt (которые в конечном итоге будут включать qglobal .h) не определяют ни один из них: WIN32, _WIN32, __WIN32__, WIN64, _WIN64, __WIN64__. Или вы можете просто определить Q_EXPORT, чтобы он был ничем в ваших флагах компиляции (или препроцессора), тогда Qt должен пропустить его определение.

...